System类的概述和方法使用
System类的概述和方法使用
System类的概述
Java.lang包下的,父类object类,被final类修饰,
System 类包含一些有用的类字段和方法。它不能被实例化。(私有了构造方法)
成员方法
- public static void gc()//运行垃圾回收器(回收未用对象,以便能够快速地重用这些对象当前占用的内存。)
- public static void exit(int status)// 终止当前正在运行的 Java 虚拟机。参数用作状态码;根据惯例,非 0 的状态码表示异常终止。
- public static long currentTimeMillis()//返回:当前时间与协调世界时 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。当返回值的时间单位是毫秒时,值的粒度取决于底层操作系统,并且粒度可能更大。
- pubiic static void arraycopy(Object src, int srcPos(起始位置), Object dest, int destPos, int length(要复制的数组元素的数量))// 从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。
字段
public static final InputStream
in"标准"输入流。此流已打开并准备提供输入数据。通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。(默认指向键盘)
public static final PrintStream
out"标准"输出流。此流已打开并准备接受输出数据。通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。(默认指向控制台)
案例演示
System类的成员方法使用
案例:
- import java.util.Arrays;
- public class Demo3_System {
- public static void main(String[] args) {
- //demo1();
- //demo2();
- //demo3();
- demo4();
- }
- private static void demo4() {
- int[] src = {11,22,33,44,55};
- int[] dest = new int[8];
- for (int i = 0; i < dest.length; i++) {
- System.out.println(dest[i]);
- }
- System.out.println("--------------------------");
- System.arraycopy(src, 0, dest, 0, src.length); //将数组内容拷贝
- for (int i = 0; i < dest.length; i++) {
- System.out.println(dest[i]);
- }
- System.out.println("=========================");
- int[] newDest = Arrays.copyOf(src, dest.length);
- for (int i = 0; i < newDest.length; i++) {
- System.out.println(dest[i]);
- }
- }
- public static void demo3() {//计算程序的执行时间
- long start = System.currentTimeMillis(); //1秒等于1000毫秒
- for(int i = 0; i < 1000; i++) {
- System.out.println("");
- }
- long end = System.currentTimeMillis(); //获取当前时间的毫秒值
- System.out.println(end - start);
- }
- public static void demo2() {
- System.exit(1); //非0状态是异常终止,退出jvm
- //因为在上面已经退出了java虚拟机,所以下面的语句不会执行
- System.out.println("11111111111");
- }
- public static void demo1() {
- //产生垃圾的for循环
- for(int i = 0; i < 100; i++) {
- new Demo();(没有任何引用指向的对象就是垃圾)
- System.gc(); //运行垃圾回收器,相当于呼喊保洁阿姨,但是不一厅呼喊一次就执行,有可能需要呼喊多次才执行
- }
- }
- }
- class Demo { //在一个源文件中不允许定义两个用public修饰的类
- @Override//不是手动调用的,当垃圾产生一定数量之后就会执行
- public void finalize() {
- System.out.println("垃圾被清扫了");
- }
- }