日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java对象生命周期

發布時間:2023/12/9 java 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java对象生命周期 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 1. 創建階段(Created)
  • 2. 應用階段(In Use)
  • 3. 不可見階段(Invisible)
  • 4. 不可達階段(Unreachable)
  • 5. 收集階段(Collected)
  • 6. 終結階段
  • 7. 對象空間的重新分配

1. 創建階段(Created)

  • 為對象分配存儲空間
  • 開始構造對象
  • 從父類到子類對static成員進行初始化
  • 父類成員變量按照順序初始化,遞歸調用父類的構造方法
  • 子類成員變量按照順序初始化,子類構造方法調用
    一旦對象被創建,并有某個引用指向它,這個對象的狀態就切換到了應用階段(In Use)

2. 應用階段(In Use)

對象至少被一個強引用持有并且對象在作用域內

3. 不可見階段(Invisible)

程序本身不再持有該對象的任何強引用,但是這些引用可能還存在著;
一般具體是指程序的執行已經超過該對象的作用域

4. 不可達階段(Unreachable)

該對象不再被任何強引用所持有;
可能仍被JVM等系統下的某些已經裝載的驚天變靈或者線程或JNI所持有,這些特殊的強引用被稱為GC root,這種情況容易導致內存泄露,無法被回收

5. 收集階段(Collected)

對象不可達,并且GC已經準備好對該對象占用的內存空間重新分配的時候,處于手機階段。
如果重寫了finazlie()方法,則會去執行該方法。

盡量不要重寫finazlie()方法,因為有可能影響JVM的對象分配與回收速度或者可能造成該對象的再次復活

6. 終結階段

當對象執行完finalize()方法之后,仍然處于不可達狀態時,則該對象進入終結階段。在這個階段,內存空間等待GC進行回收

7. 對象空間的重新分配

GC對該對象占有的內存空間進行回收或者再分配,該對象徹底消失

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Java对象生命周期的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。