1. 程式人生 > >Java學習日誌14.13(第一階段基礎)

Java學習日誌14.13(第一階段基礎)

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 - 要複製的陣列元素的數量

程式碼練習:

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