如果我在一个类中有一个方法,我正在该方法中创建一个对象 那么该对象是否会被销毁并释放分配给它的内存 一旦方法完成?
例如。 -
public void drawFigure(){
Paint paint = new Paint();
paint.setSomeProperty();
canvas.drawLine(startPoint, finishPoint, paint);
}
那么在 drawFigure 方法完成后,paint 对象将被销毁? 与 paint = null 相同,但我不需要将其设置为 null, 因为它是本地对象。我说得对吗?
最佳答案
不能保证对象会在方法调用完成后立即被 GC,但对象将变得符合条件 GC 并且在下一次 GC 运行时它可能会被收集并且内存将被释放。
编辑:
是的,你是对的。您不需要将其设置为 null
。局部变量将在堆栈上创建,一旦方法完成,堆栈将被删除。因此,paint 将从内存中消失,new Paint()
对象将在没有任何引用的情况下位于堆上,这使得上述对象符合 GC 条件。
关于java - java中本地对象的内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14352543/