Java的新实例存储多长时间?
所以最近我遇到了一个问题:当我创建一个对象的新实例时,它存储了多长时间?基本上我是问它是如何被储存的 例如:Java的新实例存储多长时间?,java,instance,Java,Instance,所以最近我遇到了一个问题:当我创建一个对象的新实例时,它存储了多长时间?基本上我是问它是如何被储存的 例如: public void initUser(Player player) { User u = new User(ally, player.getUuid()); u.setHealth(20); } (作为对象的用户) 那么u存储了多长时间?Java在我处理完它之后会清理它吗?(在调用#setHealth之后) 谢谢。一旦您处理完对象,Java就会自己执
public void initUser(Player player) {
User u = new User(ally, player.getUuid());
u.setHealth(20);
}
(作为对象的用户)
那么u
存储了多长时间?Java在我处理完它之后会清理它吗?(在调用#setHealth之后)
谢谢。一旦您处理完
对象
,Java就会自己执行gc。Java运行时的一个特殊部分称为垃圾收集器负责在所有对象不再使用时销毁它们
应用程序可以在对象创建下通过显式和隐式方式为对象分配内存,但不能显式释放内存
要向JVM发出对象已准备好进行垃圾收集的信号,对象需要通过以下任一方式解除关联:
person=null
//person是person的一个实例method()
结束,p隐式变为null
公开作废法(){
人员p=新人员();
}public void finalize()
method),则垃圾收集器将在释放该实例占用的内存空间之前,在该类的实例上执行finalize()
方法
所以很明显,垃圾收集的确切时间是不可预测的
来源:您为用户创建的对象是本地对象。因此,它将在方法中处于活动状态,一旦程序退出该方法,该对象将符合GC的条件
class Test{
User u1 = new User();
public void initUser(Player player) {
User u = new User(ally, player.getUuid());
u.setHealth(20);
}
}
在上面的代码中,对象u1在类的整个生命周期中都是活动的。如果需要将该对象设置为GC,则使u1=null该对象是inituser方法的本地对象。。。一旦它离开这个方法。。。该对象符合gc…是的,Mati,刚刚看了一下。这就是我所寻找的。它将在不再使用后的某个时间点被自动垃圾收集。实际上,由于此对象没有在该方法之外使用,因此可能使用Escape Ansys将其放置在堆栈上,从而被消除,实际上整个方法可以优化为零。这不是真的