爲什麼每次按下按鈕後內存使用量都增加了,因爲我已經將指針設置爲NULL了? (附代碼)java byte array memory not released
這使得我的程序不斷增加內存使用量。
謝謝。
package newHashFunction;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Memory_not_released extends JFrame{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Memory_not_released memory_not_released=new Memory_not_released();
}
Memory_not_released(){
JButton button1=new JButton("create bytes");
button1.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
byte[] byte1=new byte[10000000];
byte1=null;
}});
add(button1);
this.pack();
setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
}
你怎麼知道內存有時不會被釋放?從操作系統中看到的內存使用情況應該在完整的GC之後返回,但有可能是完整的gc尚未感覺需要執行。 – Ingo 2011-03-27 11:52:20
byte [] byte1 =新字節[10000000]; byte1 = null; System.gc(); 哦,它的工作原理。儘管直到第三次點擊才收集,但它可以阻止我的程序耗盡內存。謝謝! – micahli123 2011-03-27 12:00:40
我不太明白。但我想使用System.gc()。 – micahli123 2011-03-27 12:02:34