Java基础知识点总结--从细节再看Java(三)Java中的经常使用类System

在写Java代码的时候,咱们最经常使用的一句就是System.out.println()。那么System类中还有什么其余经常使用的方法吗?html

答案确定是有的,不过再看方法前,咱们先来看一下System自己:java

java.lang数组

类 System


  •  
    public final class System
    extends Object

    The System class contains several useful class fields and methods. It cannot be instantiated.ide

public final class System {
    
     private System() {
    }

}

经过API和取出的这部分代码,咱们不难有几点发现:spa

1. System在java.lang中,这也就意味着System能够不用导包就能直接使用。code

2.System是继承自Object类的final 类,即System不能被继承。htm

3.System的构造方法设置为private,所以"It cannot be instantiated"他不能被实例化。即全部System的方法都要经过System类来调用。对象

而后再来看看它包含的几个方法。继承

1. static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

灵活的复制数组,从src源数组中下标srcPos处开始复制长度为length子序列,放到下标从destPos开始的dest目标数组中。索引

Object src:源数组

int srcPos:源数组开始索引下标

Object dest:目标数组

int destPos:目标数组开始索引下标

int length:指定接受的元素个数

private static void method1() {
		char []src={'a','b','c','d','e'};
		char []dest=new char[5];
		System.arraycopy(src, 0, dest, 0, 5);
		for(char i:dest)
			System.out.print(i+" ");
//output:a b c d e		
		
		System.arraycopy(src, 2, dest, 3, 2);
		for(char i:dest)
			System.out.print(i+" ");
//output:a b c c d 
	}

 

2. static long currentTimeMillis()   

 返回1970年1月1日 00:00:00 到如今时间的毫秒数 ,1s=1000ms

例如,1970年1月1日 00:00:01  返回1000

           1970年1月1日 00:01:00  返回1000*60

           1970年1月1日 01:00:00  返回1000*60*60

一般用于计算程序的运算时间,看代码:

private static void method2() {
		long start = System.currentTimeMillis();
		
		for (int i = 0; i < 100000; i++) {
			System.out.println(i);
		}
		
		long end = System.currentTimeMillis();
		
		System.out.println(end - start);
	}

3. static void exit(int status) 

根据状态吗status结束Java虚拟机,通常非0表示异常终止。

private static void method3() {
		for (int i = 0; i < 1000; i++) {
			System.out.println(i);
			if (i == 100)
				System.exit(0);
		}
	}

4. static void gc()  

Java通常是自动调用垃圾回收器,固然咱们也能够手动调用,调用的方式就是经过System.gc()。System.gc()会尽最大努力回收垃圾,不必定会成功。

Object类中有一个finalize()方法,能够在类中对它进行覆写,当该类的对象被垃圾回收器回收或调用gc()回收以后会调用该方法。

class Person {
	@Override
	protected void finalize() throws Throwable {
		System.out.println("回收已执行");
	}
}

public class SystemDemo{
    public static void main(String[] args) {

		new Person();
		System.gc();
	}

程序运行时,不必定每次都能回收Person对象,所以不是每次都有输出的。

相关文章
相关标签/搜索