28.2 api-- System (gc、arraycopy、exit)
/*
* System:包含一些有用的类字段和方法。它不能被实例化
* static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
* static long currentTimeMillis()
* static void exit(int status)
static void gc() 运行垃圾回收率器
*
*/
public class SystemDemo {
public static void main(String[] args) {
// exitMethod();
// timeMethod();
// copyarrayMethod();
}
private static void copyarrayMethod() {
/*
* arraycopy: static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
* 复制数组
* 参数1:源数组
* 参数2:源数组的起始索引位置
* 参数3:目标数组
* 参数4:目标数组的起始索引位置
* 参数5:指定接受的元素个数
*/
int[] arr = {1,2,3,4,5};
int[] arr2 = new int[5];
System.arraycopy(arr,0,arr2,0,3);
for(int i=0;i<arr2.length;i++) {
System.out.print(arr2[i]);
}
}
private static void timeMethod() {
/*
* currentTimeMillis: public static long currentTimeMillis()
* 以毫秒值返回当前系统时间,这个毫秒的时间是相对时间,相对于1970-1-1 00:00:00到当前系统时间的差值
* 1970-1-1 00:00:01 : 1000
* 1970-1-1 00:01:00: 1000 * 60
* 1970-1-1 01:00:00: 1000 * 60 * 60
* 1000毫秒 = 1秒
**/
// System.out.println(System.currentTimeMillis());
long start = System.currentTimeMillis();
for(int i=0;i<10000;i++) {
System.out.println(i);
}
long end = System.currentTimeMillis();
System.out.println(end - start);
}
//抽取方法ctrl+alt+m
private static void exitMethod() {
//exit : public static void exit(int status)
for(int i=0;i<100000;i++) {
System.out.println(i);
if(i==100) {
System.exit(0);
}
}
}
}
gc
系统会默认调用gc进行垃圾回收,一般不用手动调用。
/*
* public static void gc()
* 运行垃圾回收器。
*调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。
*
* object.finalize
* protected void finalize()
* 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。子类重写 finalize 方法,以配置系统资源或执行其他清除。
**/
public class GcDemo {
public static void main(String[] args) {
new FinalizeDemo();
System.gc();
}
}
class FinalizeDemo {
@Override
protected void finalize() throws Throwable {
System.out.println("我被回收了");
}
}
输出

28.2 api-- System (gc、arraycopy、exit)的更多相关文章
- Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件)
Java中使用HttpPost上传文件以及HttpGet进行API请求(包含HttpPost上传文件) 一.HttpPost上传文件 public static String getSuffix(fi ...
- java 深度复制与浅复制 copyOf、arraycopy、copyOfRange
1.copyOf 原型:public static <T> T[] copyOf(T[] original, int newLength) original:原数组 newLength:要 ...
- fmt的API介绍(版本: 7.0.1)
!!版权声明:本文为博主原创文章,版权归原文作者和博客园共有,谢绝任何形式的 转载!! 作者:mohist 本文翻译: https://fmt.dev/latest/api.html 水平有限,仅供参 ...
- Delphi 常用API 函数(好多都没见过)
AdjustWindowRect 给定一种窗口样式,计算获得目标客户区矩形所需的窗口大小AnyPopup 判断屏幕上是否存在任何弹出式窗口ArrangeIconicWindows 排列一个父窗口的最小 ...
- IdentityServer4(8)- 使用密码认证方式控制API访问(资源所有者密码授权模式)
一.前言 本文已经更新到 .NET Core 2.2 OAuth 2.0 资源所有者密码模式允许客户端向令牌服务发送用户名和密码,并获取代表该用户的访问令牌. 除了通过无法浏览器进行交互的应用程序之外 ...
- Global Error Handling in ASP.NET Web API 2(webapi2 中的全局异常处理)
目前,在Web API中没有简单的方法来记录或处理全局异常(webapi1中).一些未处理的异常可以通过exception filters进行处理,但是有许多情况exception filters无法 ...
- iOS ReactiveCocoa 最全常用API整理(可做为手册查询)
本文适合有一定RAC基础的童鞋做不时的查询,所以本文不做详细解释. 一.常见类 1.RACSiganl 信号类. RACEmptySignal :空信号,用来实现 RACSignal 的 +empty ...
- 如何通过HOOK改变windows的API函数(找到函数的相对偏移)
我们知道,系统函数都是以DLL封装起来的,应用程序应用到系统函数时,应首先把该DLL加载到当前的进程空间中,调用的系统函数的入口地址,可以通过GetProcAddress函数进行获取.当系统函数进行调 ...
- d3代码如何改造成update结构(恰当处理enter和exit)
d3的enter和exit 网上有很多blog讲解.说的还凑合的见:https://blog.csdn.net/nicolecc/article/details/50786661 如何把自己的rude ...
随机推荐
- Android位置服务开发
1. 使用LocationManager获取地理位置信息 代码如下: private TextView positiontext; private String provider; private L ...
- 2016 Multi-University Training Contest 1 T4
http://acm.hdu.edu.cn/showproblem.php?pid=5726 求不修改区间gcd可以用线段树或者倍增. 求l-n的我们注意观察gcd(al,al+1,... ...
- tf.slice()函数详解(极详细)
目录 1.官方注释 2.参数解释 3.例子 参考 @(tf.slice()函数详解 ) tf.slice()是TensorFlow库中分割张量的一个函数,其定义为def slice(input_, b ...
- C# 基础知识系列- 2 字符串
String的常见方法 String 变量的声明方式 C#中字符串常见的声明有两种: 直接使用字面值 即String s = "12321"; 使用构造器,即String s = ...
- WxPython 4.0.4多线程访问UI
最开始做框架的时候的需求就是多线程访问UI,以前在.NET WPF使用MVVM和数据驱动很容易做到,在JavaSwing中使用另类的观察者模式也实现了.在WxPython中使用观察者模式直接程序崩溃, ...
- 一文洞悉JVM内存管理机制
前言 本文已经收录到我的Github个人博客,欢迎大佬们光临寒舍: 我的GIthub博客 学习导图: 一.为什么要学习内存管理? Java与C++之间有一堵由内存动态分配和垃圾回收机制所围成的高墙,墙 ...
- web----HTML(HTML的概念)
##HTML 1.概念:最基础的网页开发语言 *Hyper Text Markup Lanugage 超文本标记语言 *超文本:超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本. ...
- Leetcode_面试题62. 圆圈中最后剩下的数字(约瑟夫环)
经典的约瑟夫环,n个人排成一圈,第m个出队. 递归 code1 class Solution { public: int f(int n,int m){ if(n==1){ //递归边界,最后一个 r ...
- Python——迭代器的几个高级用法
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是Python专题的第8篇文章. 今天我们依然介绍的是迭代器,不过介绍的是几个比较常用的高级用法,在实际场景当中非常实用,可以帮助我们大 ...
- Oracle 10g客户端的安装和配置
1.双击Oracle11g_database安装目录下的Setup.exe. 2.选择“基本安装”,设置“安装位置”,填写“数据库名”和“口令”,点击“下一步”. 3.点击“下一步”. 4.一般会出现 ...