首先來看看System類,該類位於java.lang包下面,直接繼承Object類,是一個final類,不能被繼承,不能實例化,都是靜態屬性和方法。
字段摘要:
static PrintStream err 標準錯誤輸出
static InputSteam in 標準輸入
static printStream out 標準輸出
主要方法:
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 從指定源數組中複製一個數組
static long currentTimeMillis() 返回以毫秒爲單位的當前時間
static void exit(int status) 終止當前Java虛擬機
static void gc() 運行垃圾回收器,不必定立刻回收
static String getenv(String name) 獲取指定的環境變量值
static Properties getProperties() 肯定當前的系統屬性
static int identityHashCode(Object x) 返回給定對象的哈希碼
static void loadLibrary(String libname) 加載由 libname 參數指定的系統庫
static long nanoTime() 返回最準確的可用系統計時器的當前值,以毫微秒爲單位
import java.io.File; java
import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.PrintStream; import java.util.Iterator; import java.util.Properties; /** * System的經常使用方法 * */ public class SystemTest { public static void main(String[] args) { /* * System.out和System.err的區別: * 1.err是馬上刷新緩衝區並輸出,out則是先保存在緩衝區中並等緩衝區滿或者有換行符才輸出 * 2.out有可能會被緩衝,err會立刻顯示,因此err更適合調試 * 3.err和out的輸出順序 */ System.out.println("hello"); System.err.println("world"); // try { // //把打印的內容重定向到txt文件中 // System.setOut(new PrintStream(new FileOutputStream(new File("c:/test.txt")))); // System.out.print("hello test.txt"); // System.setErr(new PrintStream(new FileOutputStream(new File("c:/err.txt")))); // System.err.print("hello err.txt"); // } catch (FileNotFoundException e) { // e.printStackTrace(); // } //產生一個自1970年1月1日0時起到當前的毫秒 System.out.println(System.currentTimeMillis()); // 返回最準確的可用系統計時器的當前值,以毫微秒爲單位 System.out.println(System.nanoTime());//此方法只能用於測量已過的時間 long start = System.nanoTime(); long end = 0; int i = Integer.MAX_VALUE; System.out.println("MAX_VALUE=="+i); while(true){ i--; if(i<=0){ end = System.nanoTime()-start; break; } } System.out.println("循環執行了:"+end+"毫秒"); //獲取指定的環境變量值 System.out.println(System.getenv("JAVA_HOME")); Properties props = System.getProperties(); //系統屬性 System.out.println("Java的運行環境版本:"+props.getProperty("java.version")); System.out.println("Java的運行環境供應商:"+props.getProperty("java.vendor")); System.out.println("Java供應商的URL:"+props.getProperty("java.vendor.url")); System.out.println("Java的安裝路徑:"+props.getProperty("java.home")); System.out.println("Java的虛擬機規範版本:"+props.getProperty("java.vm.specification.version")); System.out.println("Java的虛擬機規範供應商:"+props.getProperty("java.vm.specification.vendor")); System.out.println("Java的虛擬機規範名稱:"+props.getProperty("java.vm.specification.name")); System.out.println("Java的虛擬機實現版本:"+props.getProperty("java.vm.version")); System.out.println("Java的虛擬機實現供應商:"+props.getProperty("java.vm.vendor")); System.out.println("Java的虛擬機實現名稱:"+props.getProperty("java.vm.name")); System.out.println("Java運行時環境規範版本:"+props.getProperty("java.specification.version")); System.out.println("Java運行時環境規範供應商:"+props.getProperty("java.specification.vender")); System.out.println("Java運行時環境規範名稱:"+props.getProperty("java.specification.name")); System.out.println("Java的類格式版本號:"+props.getProperty("java.class.version")); System.out.println("Java的類路徑:"+props.getProperty("java.class.path")); System.out.println("加載庫時搜索的路徑列表:"+props.getProperty("java.library.path")); System.out.println("默認的臨時文件路徑:"+props.getProperty("java.io.tmpdir")); System.out.println("一個或多個擴展目錄的路徑:"+props.getProperty("java.ext.dirs")); System.out.println("操做系統的名稱:"+props.getProperty("os.name")); System.out.println("操做系統的構架:"+props.getProperty("os.arch")); System.out.println("操做系統的版本:"+props.getProperty("os.version")); System.out.println("文件分隔符:"+props.getProperty("file.separator")); //在 unix 系統中是"/" System.out.println("路徑分隔符:"+props.getProperty("path.separator")); //在 unix 系統中是":" System.out.println("行分隔符:"+props.getProperty("line.separator")); //在 unix 系統中是"/n" System.out.println("用戶的帳戶名稱:"+props.getProperty("user.name")); System.out.println("用戶的主目錄:"+props.getProperty("user.home")); System.out.println("用戶的當前工做目錄:"+props.getProperty("user.dir")); //返回對象的哈希碼 System.out.println("hashCode=="+System.identityHashCode(new SystemTest())); //終止虛擬機,非 0 的狀態碼錶示異常終止 System.exit(0); } }