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 - 要复制的数组元素的数量
- public static void exit(int status) //终止当前正在运行的 Java 虚拟机。
代码练习:
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