System中的重要方法
System类包含一些有用的类字段和方法。它不能被实例化。
System中的gc():
运行垃圾回收器的方法
调用 gc 方法暗示着 Java 虚拟机做了一些努力来回收未用对象,以便能够快速地重用这些对象当前占用的内存。当控制权从方法调用中返回时,虚拟机已经尽最大努力从所有丢弃的对象中回收了空间。
调用 System.gc() 实际上等效于调用:
Runtime.getRuntime().gc()
Demo: |
public class SystemDemo { public static void main(String[] args) { Person p = new Person("赵雅芝", 60); System.out.println(p);
p = null; // 让p不再指定堆内存 System.gc(); } } |
Demo: |
package cn.itcast_01;
public class Person { private String name; private int age;
public Person() { super(); }
public Person(String name, int age) { super(); this.name = name; this.age = age; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
@Override public String toString() { return "Person [name=" + name + ", age=" + age + "]"; }
@Override protected void finalize() throws Throwable { System.out.println("当前的对象被回收了" + this); super.finalize(); }
} |
exit ()方法:
终止当前正在运行的Java虚拟机,参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
Demo: |
public class SystemDemo { public static void main(String[] args) { // System.out.println("我们喜欢林青霞(东方不败)"); // System.exit(0); // System.out.println("我们也喜欢赵雅芝(白娘子)");
// System.out.println(System.currentTimeMillis());
// 单独得到这样的实际目前对我们来说意义不大 // 那么,它到底有什么作用呢? // 要求:请大家给我统计这段程序的运行时间 long start = System.currentTimeMillis(); for (int x = 0; x < 100000; x++) { System.out.println("hello" + x); } long end = System.currentTimeMillis(); System.out.println("共耗时:" + (end - start) + "毫秒"); } } |
currentTimeMillis()
返回以毫秒值的当前时间
arraycopy(Object src,int srcPos,Object dest,int destPos,int length):
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束
Demo: |
public class SystemDemo { public static void main(String[] args) { // 定义数组 int[] arr = { 11, 22, 33, 44, 55 }; int[] arr2 = { 6, 7, 8, 9, 10 };
// 请大家看这个代码的意思 System.arraycopy(arr, 1, arr2, 2, 2);
System.out.println(Arrays.toString(arr)); System.out.println(Arrays.toString(arr2)); } } |