Java me JavaMe可运行对象占用内存,但尚未创建实例

Java me JavaMe可运行对象占用内存,但尚未创建实例,java-me,Java Me,我在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 threa

我在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
    }
  }
问题是,尽管
变量
仍然设置为
1
,因此它不会通过
if(variable==2)
条件,但程序比在条件
if(variable==2)
之后删除代码时消耗的内存多300kB

据我所知,应该执行代码,只有当我将变量设置为value
2
时,才会创建对象。但当条件“if(variable==2)”之后的代码未执行时,它也会消耗内存


为什么会发生这种情况?

您如何了解内存消耗情况?你在emulator中测试它吗?@gnat他可能会打印
Runtime.freemory()
。你有很多课程和资源吗?您是否使用proguard?您可能会在代码的其他区域初始化其他对象我的猜测是,当您不引用MyCanvas时,它可能会变得模糊?但只要有参考资料,就会保留下来。300kb听起来确实很多。