System類、Runtime類、Robot類
System類:
System類主要是用來操作、獲得系統相關的一些東西,例如之前用到的獲取系統時間的方法System.currentTimeMillis();
運行結果:
getenv();方法:
使用getenv方法可以得到jdk在環境變量的路徑,還有classpath、java_home等等路徑方面的信息。例如:
運行結果:
getProperties();方法:
使用getProperties();方法可以獲得JDK的各方面信息。例如版本號,所屬公司,JVM等等信息。
例如:
運行結果:
不過這樣獲得打印出來的方式比較亂不夠直觀,所以可以使用Set集合將需要的類型以集合的類型保存到變量中,然後使用這個變量進行遍歷打印出來。
代碼示例:
System.arraycopy();方法:
System.arraycopy();方法是用來在內存中進行數組拷貝的
System.arraycopy(src, srcPos, dest, destPos, length);
src表示:從哪個數組開始拷貝
srcPos表示:從數組的第幾個開始拷貝
dest表示:拷貝到哪個數組
destPos表示:從數組的第幾個開始放入
length表示:拷貝多少長度
代碼示例:
運行結果:
從num數組的第0個開始拷貝,拷貝到number數組,從number數組的第0個開始放,拷貝的長度是num數組的長度。
System.gc();
提醒垃圾回收方法。
System.exit();
直接關閉虛擬機方法。
float和double:
float和double在運算時會遇到的一些問題,就是在運算的時候會丟失精度。例如:
運行結果:
按理來說本來運行結果應該為1的,但是卻損失了一點精度,是因為float和double類型主要是為科學和工程計算而設計的。它們執行的是二進制浮點運算,由於二進制的局限性,有時候無法得到準確的結果,因為在二進制中無法準確的表示10的任何負數次方值。雖然在科學計算中無關緊要,通過四舍五入可以解決問題。但是在禁止出現舍入誤差的運算中(例如金融計算)就不適用了。
所以這時候就要使用到BigDecimal類。
BigDecimal類:
BigDecimal類用於解決float和double運算時會丟失精度的問題。但是double在運算次數多的時候還是會有一點點精度不夠,float則可以保持精度。
代碼示例:
運行結果:
BigInteger類:
BigInteger是一個能夠存儲很大的整型數字的類,能夠存儲很多很多的數字,並且不會損失精度。
運行結果:
Runtime類:
Runtime是用來使應用程序能夠與其運行的環境相連接的,使用對象可以訪問JVM的相關信息,如處理器數量,內存信息等。並且可以控制終端執行一些系統命令。這個類是一個單例,需要用方法才能得到對象。
例如:
exec();
exec();是比較常用的一個方法,用於控制系統終端執行系統命令。
例如使用系統命令打開一個網頁:
運行結果:
其他的一些方法:
獲得Jvm內存信息:
運行結果:
Robot類:
Robot是可以實現自動控制的一個類,例如自動控制鼠標,鍵盤,截圖等功能。
控制鍵盤:
控制截圖:
控制鼠標:
本文出自 “zero” 博客,請務必保留此出處http://zero01.blog.51cto.com/12831981/1976512
System類、Runtime類、Robot類