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對象,所以不是每次都有輸出的。

相關文章
相關標籤/搜索