java的runtime类,java中Runtime类的简单应用
1.簡介
JVM中,Runtime類是唯一與JVM的運(yùn)行狀態(tài)相關(guān)的類,并且默認(rèn)情況下提供此類的實(shí)例化對(duì)象。
由于每個(gè)JVM進(jìn)程中只允許運(yùn)行時(shí)類的一個(gè)對(duì)象,因此默認(rèn)情況下該類的構(gòu)造方法是私有化的,這表明該類使用單例設(shè)計(jì)模式,并且單例模式將提供一個(gè)靜態(tài)方法來獲取此類。
2.獲取
獲取實(shí)例化對(duì)象:
public static Runtime getRuntime() ?//返回與當(dāng)前Java應(yīng)用程序關(guān)聯(lián)的運(yùn)行時(shí)對(duì)象。 Runtime類的大多數(shù)方法都是實(shí)例方法,必須針對(duì)當(dāng)前的運(yùn)行時(shí)對(duì)象進(jìn)行調(diào)用。
3.方法介紹
獲取最大可用內(nèi)存空間:public long maxMemory() ;
獲取可用內(nèi)存空間:public long totalMemory() ;
獲取空閑內(nèi)存空間:public long freeMemory() ;
手工進(jìn)行GC處理:public void gc() 。
具體描述參考API文檔。
4.示例-觀察內(nèi)存狀態(tài)
1 Runtime runtime = Runtime.getRuntime(); //獲取實(shí)例化對(duì)象
2 System.out.println(runtime.availableProcessors()); //返回可用于Java虛擬機(jī)的處理器數(shù)量 (CPU內(nèi)核數(shù))
3 System.out.println("【1】MAX_MEMORY:" + runtime.maxMemory());
4 System.out.println("【1】TOTAL_MEMORY:" + runtime.totalMemory());
5 System.out.println("【1】FREE_MEMORY:" + runtime.freeMemory());
6 runtime.gc(); // 垃圾回收
7 System.out.println("【2】MAX_MEMORY:" + runtime.maxMemory());
8 System.out.println("【2】TOTAL_MEMORY:" + runtime.totalMemory());
9 System.out.println("【2】FREE_MEMORY:" + runtime.freeMemory());
通過計(jì)算獲取到的 MAX_MEMORY、TOTAL_MEMORY 對(duì)應(yīng)值,可分別獲取本機(jī)系統(tǒng)內(nèi)存的值;
計(jì)算方法:
由于 Runtime 類中的 maxMemory()、totalMemory()、freeMemory()方法獲取的近似結(jié)果是以 字節(jié) 為單位,所以將獲取到的值分別除以 1024的3次方 得到以G為單位的數(shù)值。
結(jié)論:
maxMemory() ?默認(rèn)配置為本機(jī)系統(tǒng)內(nèi)存的四分之一
totalMemory() ?默認(rèn)配置為本機(jī)系統(tǒng)內(nèi)存的六十四分之一
5.GC
GC(Garbage Collector)垃圾收集器,是可以由系統(tǒng)自動(dòng)調(diào)用的垃圾釋放功能,或者使用Runtime類中的gc手工調(diào)用。
該文章部分內(nèi)容來源于其他資料,如有侵權(quán)或?qū)δ斐衫_,還請(qǐng)及時(shí)聯(lián)系我刪除相關(guān)內(nèi)容,帶來不便還請(qǐng)諒解。
總結(jié)
以上是生活随笔為你收集整理的java的runtime类,java中Runtime类的简单应用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 光头阳线预示着什么
- 下一篇: 2008matlab error 95,