[英]Object Destruction in Java
從下面的示例中,在案例 1 中,對象是在類級別創建的,在案例 2 中,它是在方法級別創建的。
我的理解是,在案例 2 中,一旦方法完成執行,對象就會從堆內存中刪除。 我的理解正確嗎?
現在我的問題是,在這兩種情況下,何時將對象從堆內存中刪除,哪種是在不同上下文中使用的有效方式?
public class A()
{
ClassB obj = new ClassB(); // Case 1
private void method()
{
ClassB obj = new ClassB(); // Case 2
}
}
可能取決於您的 Java VM 實現,但通常 GC 僅在堆填充/飽和后運行。 所以不,很可能它不會立即被刪除。
在你的程序中。 你只寫了一行,其中只完成了聲明和初始化。 還有一件事我想問的是它是class
、 Method
還是constructor
。
private example(){ //what is example ?? Is it class or method or constructor ?
ClassA obj = new ClassA();
}
但我想告訴你ClassA obj
在}
(閉括號)執行完成后將有資格進行 gc。 但這完全取決於 jvm 何時執行 gc 然后收集和銷毀對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.