3

我在 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)" 之后的代码没有被执行时,它也会消耗内存。

为什么会这样?

4

0 回答 0