为什么每次按下按钮后内存使用量都增加了,因为我已经将指针设置为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