2013-09-24 140 views
-1

什麼爪哇 - Runtime.xmemory()

Runtime.getRuntime().maxMemory(); 

.freeMemory(); 

回報? 我在我的4 GB RAM筆記本電腦上得到了一些價值觀。是mbytes字節還是kbytes?

我需要做的有一個滑塊分裂成512MBs,但有數字每個1024MBs

那是我的循環

 ram = new JSlider(); 
    ram.setMinimum(512); 
    ram.setPaintTicks(true); 
    ram.setMajorTickSpacing(512); 
    ram.setValue(512); 
    ram.setPreferredSize(new Dimension(750, 50)); 
    ram.setVisible(true); 
    Hashtable<Integer, JLabel> labelTable = new Hashtable<Integer, JLabel>(); 
    int mbs = 1024; 
    while(mbs <= Runtime.getRuntime().freeMemory()/1024){  
     labelTable.put(mbs, new JLabel(Integer.toString(mbs))); 
     mbs += 1024; 
    } 
    ram.setLabelTable(labelTable); 
    ram.setPaintLabels(true); 

     frame.add(ram) 

回答

1

Java Docs

freeMemory

衆長freeMemory ()

返回Java虛擬機中的可用內存量爲 。調用gc方法可能會導致 增加freeMemory返回的值。

返回:近似值 到當前可用於未來分配的 對象的當前可用內存總量,在字節中測量。

maxMemory

衆長maxMemory()

返回Java虛擬機將嘗試使用的內存 的最高金額。如果沒有 固有限制,則返回值Long.MAX_VALUE。

返回:存儲器,所述虛擬機將 試圖使用的最大量,在字節

測量(對不起,此不打算以適應在註釋)

+0

嗯,是的事實是,我有一個循環做每半記憶的東西。我不能讓它與空閒內存一起工作 – Zarkopafilis

+0

你能用循環中的代碼更新問題嗎? – MadProgrammer

+0

再去看看 – Zarkopafilis

0

的javadoc指出這些值將以字節爲單位。

近似於當前可用於未來分配對象的內存總量,以字節爲單位。