簡體   English   中英

Java 中的對象銷毀

[英]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 僅在堆填充/飽和后運行。 所以不,很可能它不會立即被刪除。

在你的程序中。 你只寫了一行,其中只完成了聲明和初始化。 還有一件事我想問的是它是classMethod還是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM