System類:
System類主要是用來操作、獲得系統相關的一些東西,例如之前用到的擷取系統時間的方法System.currentTimeMillis();
<a href="https://s3.51cto.com/oss/201710/26/8a4764a9e3acfedff14d397ca21feb9f.png" target="_blank"></a>
運作結果:
<a href="https://s4.51cto.com/oss/201710/26/eccf4c4c9f9d29b934545ba71634a29c.png" target="_blank"></a>
getenv();方法:
使用getenv方法可以得到jdk在環境變量的路徑,還有classpath、java_home等等路徑方面的資訊。例如:
<a href="https://s2.51cto.com/oss/201710/26/1cc7a43415f3101b0dd75bbbc5a0bba9.png" target="_blank"></a>
<a href="https://s5.51cto.com/oss/201710/26/c8542465bf8fdf48599a534364bee0de.png" target="_blank"></a>
getProperties();方法:
使用getProperties();方法可以獲得JDK的各方面資訊。例如版本号,所屬公司,JVM等等資訊。
例如:
<a href="https://s2.51cto.com/oss/201710/26/6e7c3ddf09987c86c47df28e705d89b9.png" target="_blank"></a>
<a href="https://s1.51cto.com/oss/201710/26/a9480d944bddebdc945930354a72ffab.png" target="_blank"></a>
不過這樣獲得列印出來的方式比較亂不夠直覺,是以可以使用Set集合将需要的類型以集合的類型儲存到變量中,然後使用這個變量進行周遊列印出來。
代碼示例:
<a href="https://s5.51cto.com/oss/201710/26/31ff68c6b80cb048e2178b4760d0ca47.png" target="_blank"></a>
<a href="https://s4.51cto.com/oss/201710/26/9cf6091801e0d2704f816527ca44504e.png" target="_blank"></a>
System.arraycopy();方法:
System.arraycopy();方法是用來在記憶體中進行數組拷貝的
System.arraycopy(src, srcPos, dest, destPos, length);
src表示:從哪個數組開始拷貝
srcPos表示:從數組的第幾個開始拷貝
dest表示:拷貝到哪個數組
destPos表示:從數組的第幾個開始放入
length表示:拷貝多少長度
代碼示例:
<a href="https://s3.51cto.com/oss/201710/26/5f02b713be2791ce9cfc61e33216349f.png" target="_blank"></a>
<a href="https://s3.51cto.com/oss/201710/26/47d6c6272f5db7b57f7ccc392cb9dd3b.png" target="_blank"></a>
從num數組的第0個開始拷貝,拷貝到number數組,從number數組的第0個開始放,拷貝的長度是num數組的長度。
System.gc();
提醒垃圾回收方法。
System.exit();
直接關閉虛拟機方法。
float和double:
float和double在運算時會遇到的一些問題,就是在運算的時候會丢失精度。例如:
<a href="https://s5.51cto.com/oss/201710/26/d269e9b2c9f8a739df123c2f5f863876.png" target="_blank"></a>
<a href="https://s3.51cto.com/oss/201710/26/5ec27848857dd854c42273d52b3d0a94.png" target="_blank"></a>
按理來說本來運作結果應該為1的,但是卻損失了一點精度,是因為float和double類型主要是為科學和工程計算而設計的。它們執行的是二進制浮點運算,由于二進制的局限性,有時候無法得到準确的結果,因為在二進制中無法準确的表示10的任何負數次方值。雖然在科學計算中無關緊要,通過四舍五入可以解決問題。但是在禁止出現舍入誤差的運算中(例如金融計算)就不适用了。
是以這時候就要使用到BigDecimal類。
BigDecimal類:
BigDecimal類用于解決float和double運算時會丢失精度的問題。但是double在運算次數多的時候還是會有一點點精度不夠,float則可以保持精度。
代碼示例:
<a href="https://s2.51cto.com/oss/201710/26/f16eee577231a4c223e33779f9d6f66f.png" target="_blank"></a>
<a href="https://s2.51cto.com/oss/201710/26/f7b07d1b109ccece6b6b0b94dcc6d4a3.png" target="_blank"></a>
BigInteger類:
BigInteger是一個能夠存儲很大的整型數字的類,能夠存儲很多很多的數字,并且不會損失精度。
<a href="https://s2.51cto.com/oss/201710/26/3d4d285aafc328fe31cbfc99ca6bc365.png" target="_blank"></a>
<a href="https://s1.51cto.com/oss/201710/26/428dc890d41baf91654ed9cde9a7dc55.png" target="_blank"></a>
Runtime類:
Runtime是用來使應用程式能夠與其運作的環境相連接配接的,使用對象可以通路JVM的相關資訊,如處理器數量,記憶體資訊等。并且可以控制終端執行一些系統指令。這個類是一個單例,需要用方法才能得到對象。
<a href="https://s4.51cto.com/oss/201710/26/2c67e50ea365eb891f93b3f0fcde0d0c.png" target="_blank"></a>
exec();
exec();是比較常用的一個方法,用于控制系統終端執行系統指令。
例如使用系統指令打開一個網頁:
<a href="https://s3.51cto.com/oss/201710/26/1f768cca2a0cd18e972c67dc168165b3.png" target="_blank"></a>
<a href="https://s1.51cto.com/oss/201710/26/3952ec7e606fe7967a576a20e555aa48.png" target="_blank"></a>
其他的一些方法:
<a href="https://s5.51cto.com/oss/201710/26/15f6bcc89730bbcc74f856131ab49c24.png" target="_blank"></a>
獲得Jvm記憶體資訊:
<a href="https://s4.51cto.com/oss/201710/26/99f7cf8bd5b651ce84c77d84da66f06b.png" target="_blank"></a>
<a href="https://s5.51cto.com/oss/201710/26/2dd0147cd2fb70a732e5d158e2428eff.png" target="_blank"></a>
Robot類:
Robot是可以實作自動控制的一個類,例如自動控制滑鼠,鍵盤,截圖等功能。
控制鍵盤:
<a href="https://s1.51cto.com/oss/201710/26/0237c6226a185e9ce905d65bd2f8e382.png" target="_blank"></a>
控制截圖:
<a href="https://s3.51cto.com/oss/201710/26/5cc57f2acd23938908130577c38d27d1.png" target="_blank"></a>
控制滑鼠:
<a href="https://s3.51cto.com/oss/201710/26/cdf11ae9a588f96515e3dcc57577a8b5.png" target="_blank"></a>
本文轉自 ZeroOne01 51CTO部落格,原文連結:http://blog.51cto.com/zero01/1976512,如需轉載請自行聯系原作者