1. 程式人生 > >System類、Runtime類、Robot類

System類、Runtime類、Robot類

system runtime robot

System類:

System類主要是用來操作、獲得系統相關的一些東西,例如之前用到的獲取系統時間的方法System.currentTimeMillis();

技術分享


運行結果:

技術分享


getenv();方法:

使用getenv方法可以得到jdk在環境變量的路徑,還有classpathjava_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();

直接關閉虛擬機方法。

floatdouble

floatdouble在運算時會遇到的一些問題,就是在運算的時候會丟失精度。例如:

技術分享


運行結果:

技術分享


按理來說本來運行結果應該為1的,但是卻損失了一點精度,是因為floatdouble類型主要是為科學和工程計算而設計的。它們執行的是二進制浮點運算,由於二進制的局限性,有時候無法得到準確的結果,因為在二進制中無法準確的表示10的任何負數次方值。雖然在科學計算中無關緊要,通過四舍五入可以解決問題。但是在禁止出現舍入誤差的運算中(例如金融計算)就不適用了。

所以這時候就要使用到BigDecimal類。

BigDecimal類:

BigDecimal類用於解決floatdouble運算時會丟失精度的問題。但是double在運算次數多的時候還是會有一點點精度不夠,float則可以保持精度。

代碼示例:

技術分享


運行結果:

技術分享


BigInteger類:

BigInteger是一個能夠存儲很大的整型數字的類,能夠存儲很多很多的數字,並且不會損失精度。

技術分享


運行結果:

技術分享


Runtime類:

Runtime是用來使應用程序能夠與其運行的環境相連接的,使用對象可以訪問JVM的相關信息,如處理器數量,內存信息。並且可以控制終端執行一些系統命令。這個類是一個單例,需要用方法才能得到對象。

例如:

技術分享


exec();

exec();是比較常用的一個方法,用於控制系統終端執行系統命令。

例如使用系統命令打開一個網頁:

技術分享


運行結果:

技術分享


其他的一些方法:

技術分享


獲得Jvm內存信息:

技術分享


運行結果:

技術分享


Robot類:

Robot是可以實現自動控制的一個類,例如自動控制鼠標,鍵盤,截圖等功能。

控制鍵盤:

技術分享


控制截圖:

技術分享


控制鼠標:

技術分享

本文出自 “zero” 博客,請務必保留此出處http://zero01.blog.51cto.com/12831981/1976512

System類、Runtime類、Robot類