Java學習日誌14.13(第一階段基礎)
阿新 • • 發佈:2018-11-03
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 - 要複製的陣列元素的數量
- public static void exit(int status) //終止當前正在執行的 Java 虛擬機器。
程式碼練習:
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