Ank*_*kit 4 java garbage-collection memory-management
如果我在一个类中有一个方法,并且我在该方法中创建了一个对象,那么该方法完成后会破坏该对象并释放分配给它的内存吗?
例如. -
public void drawFigure(){
Paint paint = new Paint();
paint.setSomeProperty();
canvas.drawLine(startPoint, finishPoint, paint);
}
Run Code Online (Sandbox Code Playgroud)
那么在drawFigure方法完成后,paint对象会被销毁吗?与paint = null相同,但我不需要将它设置为null,因为它是一个本地对象.我对吗?
方法调用完成后,无法保证对象将被GC化,但对象将符合 GC的条件,并且在下一次GC运行时,它可能被收集并且内存将是免费的.
编辑:
是的,你是对的.您无需将其设置为null.将在堆栈上创建局部变量,并在方法完成后立即删除堆栈.因此,绘制将远离内存并且new Paint()对象将在堆上而没有任何引用,这使得上面的对象符合GC的条件.
| 归档时间: |
|
| 查看次数: |
2533 次 |
| 最近记录: |