Java me JavaMe可运行对象占用内存,但尚未创建实例
我在Java ME中面临一个奇怪的内存问题 以下是我代码的一部分: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
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
据我所知,应该执行代码,只有当我将变量设置为value2
时,才会创建对象。但当条件“if(variable==2)”之后的代码未执行时,它也会消耗内存
为什么会发生这种情况?您如何了解内存消耗情况?你在emulator中测试它吗?@gnat他可能会打印
Runtime.freemory()
。你有很多课程和资源吗?您是否使用proguard?您可能会在代码的其他区域初始化其他对象我的猜测是,当您不引用MyCanvas时,它可能会变得模糊?但只要有参考资料,就会保留下来。300kb听起来确实很多。