/*
* 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("我被回收了"); } }
输出