我在 Java ME 中遇到了一个奇怪的内存问题。
这是我的代码的一部分:
int variable=1;
while (true) {
if (variable==2) {
display = Display.getDisplay(this);
MyCanvas mc = new MyCanvas(this); // MyCanvas is a runnable object
mcT = new Thread(mc); // new thread for MyCanvas
mc.repaint();
display.setCurrent(mc);
mcT.start(); // run thread
}
if (variable==1) {
// Do some other stuff
}
}
问题是虽然仍然variable
设置为1
,所以它没有通过if (variable==2)
条件程序消耗 300kB 的内存,而不是在条件后删除代码时if (variable==2)
。
据我所知,代码应该被执行,并且只有在我将 variable 设置为 value 时才会创建对象2
。但是当条件 "if (variable==2)" 之后的代码没有被执行时,它也会消耗内存。
为什么会这样?