Java学习日志14.13(第一阶段基础)

2018.10.30 9:56 晴

14.13_常见对象(System类的概述和方法使用)

  • A:System类的概述
  • public final class System extends Object
    • System 类包含一些有用的类字段和方法。它不能被实例化。
  • B:成员方法
    *public static void gc() // 运行垃圾回收器。
    运行处于挂起终止状态的所有对象的终止方法。
    调用该方法说明 Java 虚拟机做了一些努力运行已被丢弃对象的 finalize 方法,但是这些对象的 finalize 方法至今尚未运行。当控制权从方法调用中返回时,Java 虚拟机已经尽最大努力去完成所有未执行的终止方法。
    其中:finalize() //相当于呼喊保洁阿姨过来清理垃圾
    当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
    调用 System.runFinalization() 实际上等效于调用:
    Runtime.getRuntime().runFinalization()
    • public static void exit(int status) //终止当前正在运行的 Java 虚拟机。
      参数用作状态码;根据惯例,非 0 的状态码表示异常终止,0代表正常终止
    • public static long currentTimeMillis() // 返回1970.1.1起以毫秒为单位的当前时间。
    • pubiic static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) // 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
      src - 源数组。
      srcPos - 源数组中的起始位置。
      dest - 目标数组。
      destPos - 目标数据中的起始位置。
      length - 要复制的数组元素的数量

代码练习:

package com.heima.otherclass;

public class Demo_System {
	public static void main(String[] args) {
		demo1();
		System.out.println("_____________");
		//demo2();
		//System.out.println("_____________");
		demo3();
		System.out.println("_____________");
		demo4();		 
	}
	private static void demo4() {
		int []src = {11,22,33,44,55 };	// 原数组
		 int []dest = new int[7];	//目标数组
		 System.out.println("数组赋值前:");
		 for (int i = 0; i < dest.length; i++) {
			System.out.println(dest[i]);
		}
		 System.out.println("数组复制后:");
		 System.arraycopy(src, 0, dest, 0, 5);
		 for (int i = 0; i < dest.length; i++) {
			System.out.println(dest[i]);
		}
	}

	private static void demo3() {
		long start = System.currentTimeMillis();	//起始时间
		System.out.println(start);
		for (int i = 0; i < 10; i++) {
			System.out.println("我是黑马");
		}
		long end = System.currentTimeMillis();	//结束时间
		System.out.println(end);
		long time = end - start;	//循环运行时间1s = 1000ms
		System.out.println(time);
	}

	private static void demo2() {
		System.exit(0);	//0为正常终止,退出jvm
		System.out.println("我是彬哥");	//退出jvm后,程序不往下执行
	}

	private static void demo1() {
		for (int  i = 0;  i < 10;  i++) {
			new Demo();		//当垃圾数量较多时,会自动调用finalize
			System.gc();  	//运行垃圾回收器,相当于呼喊保洁阿姨
		}
	}
}
class Demo {
	@Override
	protected void finalize() {
		System.out.println("垃圾被清扫了");
	}
}

程序结果:
垃圾被清扫了
垃圾被清扫了


垃圾被清扫了
垃圾被清扫了
垃圾被清扫了
垃圾被清扫了
垃圾被清扫了
垃圾被清扫了
垃圾被清扫了
开始时间
垃圾被清扫了
1540864961234
我是黑马
我是黑马
我是黑马
我是黑马
我是黑马
我是黑马
我是黑马
我是黑马
我是黑马
我是黑马
结束时间:
1540864961235
运行时间:
1


数组赋值前:
0
0
0
0
0
0
0
数组复制后:
11
22
33
44
55
0
0

猜你喜欢

转载自blog.csdn.net/binge_kong/article/details/83537364