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

歡迎訪問 生活随笔!

生活随笔

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

java

【Java 虚拟机原理】垃圾回收算法 ( Java 虚拟机内存分区 | 垃圾回收机制 | 引用计数器算法 | 引用计数循环引用弊端 )

發布時間:2025/6/17 java 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【Java 虚拟机原理】垃圾回收算法 ( Java 虚拟机内存分区 | 垃圾回收机制 | 引用计数器算法 | 引用计数循环引用弊端 ) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 一、Java 虛擬機內存分區
  • 二、垃圾回收機制
  • 三、引用計數器算法 ( 無法解決循環引用問題 )





一、Java 虛擬機內存分區



Java 虛擬機內存分區 :

  • 所有線程共有的內存區域 : 堆 , 方法區 ( 元空間 ) ;

    • 方法區 : 存放 靜態變量 , 常量 , class 編譯后的代碼數據 , 永久代對象數據 ( 很少 GC , 永久代的 GC 就是卸載常量池及類型 ) ;
    • 堆 : 存放 創建的 對象實例 , 所有線程共享這個區域 , 堆是 垃圾回收的重點管理區域 ; 有 年輕代 , 老年代 空間 ;
      • 年輕代 : 占整個 堆內存的 13\cfrac{1}{3}31? 的空間 ;
        • Eden 區 : 占 年輕代的 80%80\%80% 空間 ;
        • Survivor 區 : 占年輕代的 20%20\%20% 空間 ;
          • From : 占 年輕代的 10%10\%10% 空間 ;
          • To : 占 年輕代的 10%10\%10% 空間 ;
      • 老年代 : 占整個 堆內存的 23\cfrac{2}{3}32? 空間 ; 老年代又稱為永生代 , 只要程序沒有 OOM 崩潰 , 這些 對象都是永生的 ; 比較大的對象直接放入老年代 ;
  • 線程私有的內存區域 : 線程棧 , 本地方法棧 , 程序計數器 ; 每個線程都會分配上述 3 個內存區域 ;

    • 虛擬機棧 ( 線程棧 ) : 主要管理 " 棧幀 " , 棧幀 在 線程棧 中也是 后入先出 的 ; 每個棧幀都包含 局部變量表 , 操作數棧 , 動態鏈接 , 方法出口 , 這四個數據 ;
      • 動態鏈接 : 每個 " 棧幀 " 都包含一個引用 , 是該引用指向 運行時 , 該 棧幀 對應方法 的引用 ;
      • 局部變量表 : 存放 方法中的 局部變量 ;
      • 操作數棧 : 存放方法執行中的 操作數 , 一般是 0,1,20,1 , 20,1,2 個數值 , 很少有其它情況 ;
      • 方法出口 : 記錄本方法執行完畢后該執行的下一行 JVM 指令 ;
    • 本地方法棧 : 記錄 JNI 執行的棧 ;
    • 程序計數器 : 記錄線程執行到哪一行的 JVM 指令 ;




二、垃圾回收機制



Java 中 不需要 手動回收 對象內存 , 由 Java 虛擬機 自動執行 ;

  • 好處 : 開發相對簡單 ;
  • 壞處 : 不能直接操作內存 ;

C 語言中 , 自己 malloc 手動申請了內存 , 必須使用 free 手動釋放內存 ;


垃圾回收 的目標 是 垃圾對象 , 主要針對 堆內存 中的空間進行 ;

垃圾對象 的判斷標準 : 沒有任何作用的 被廢棄的 對象 , 一個對象 沒有任何引用 指向它 ;





三、引用計數器算法 ( 無法解決循環引用問題 )



引用計數器算法 判定 垃圾對象 : 使用引用計數算法 , 判定一個對象是否是垃圾對象 ;

為 對象 分配 引用計數器 , 當 有一個引用指向它時 , 引用計數器 +1+ 1+1 , 如果有 333 個引用指向該對象時 , 引用計數器值為 333 , 如果某個引用失效 , 則 引用計數器 ?1- 1?1 , 如果對象的全部引用失效 , 則對象的引用計數器值為 000 , 此時該對象就是 垃圾對象 , 需要被回收 ;

目前成熟的 Java 虛擬機 沒有使用 引用計數器 算法 , 因為 如果 兩個對象 僅僅是 互相引用 , 這兩個對象的引用計數器 都是 111 , 但是這兩個對象與其余對象沒有任何聯系 , 這樣就導致了 這兩個對象所占用的內存 , 永久泄漏了 ;

引用計數器算法 無解解決 循環引用的問題 , 如果有 222 個及以上的對象循環引用 , 與程序隔絕 , 造成內存泄漏 , 無法解決 ;

《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀

總結

以上是生活随笔為你收集整理的【Java 虚拟机原理】垃圾回收算法 ( Java 虚拟机内存分区 | 垃圾回收机制 | 引用计数器算法 | 引用计数循环引用弊端 )的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产免费av一区二区三区 | 亚洲精品无码久久 | 91久色视频 | 日本爱爱免费视频 | 永久视频在线观看 | 欧美精品在线观看视频 | 插插插操操操 | 一级片在线免费观看视频 | 黄色a一级视频 | 污免费在线观看 | 污污网站在线 | 国内视频一区二区 | 黄色一区二区三区 | 真实乱偷全部视频 | 国产精品男人的天堂 | 公侵犯人妻一区二区 | 黄色操人视频 | 日韩国产区 | 极品美女一区二区三区 | 亚洲色图88| 少妇床戏av | porn麻豆 | www.伊人 | 91视频在线免费观看 | 91成人免费在线观看视频 | 日韩 欧美 国产 综合 | 偷拍亚洲精品 | 麻豆精品国产精华精华液好用吗 | 国产精品麻豆一区二区三区 | 国产在线播放一区 | 久久av色 | 欧美成人精品激情在线观看 | 美女成人在线 | 人人叉人人| 久久一区欧美 | 色桃视频 | 男人综合网 | 性生交大片免费看视频 | 韩国一区在线 | 激情综合影院 | 国产精品九色 | 欧美三级色图 | 蜜臀av夜夜澡人人爽人人 | 91福利视频免费观看 | 国产亚洲精品久久久久久 | 欧美一区二区久久久 | 欧美日韩一二三区 | 五月婷婷六月香 | av久色| 日韩免费在线视频观看 | 国产在线精品自拍 | 色乱码一区二区三在线看 | 国产成人精品久久二区二区91 | 少妇性l交大片免潘金莲 | 成人免费视频网 | 天码人妻一区二区三区在线看 | www.com污| 爱情岛论坛自拍 | 日韩久久久久久久久久久 | 就要日就要操 | 欧洲亚洲一区 | 亚洲国产传媒 | 欧美婷婷| 亚洲天堂成人在线观看 | 国产主播啪啪 | 中文字幕乱码一区 | 伊人春色网 | 午夜精品美女久久久久av福利 | 神马影院一区二区三区 | 日韩欧美三级在线观看 | 亚洲福利小视频 | 婷婷亚洲一区 | 99re在线视频 | 免费福利在线视频 | 微拍福利一区二区 | 在线观看黄色免费网站 | 国产无遮挡裸体免费视频 | 日韩精品福利视频 | 亚洲成人手机在线 | 日韩一级免费 | 中文字幕在线视频一区二区三区 | 亚洲欧美另类图片 | 日本a在线 | 久久视频一区 | 青草视频在线 | 久久视精品 | 国产伦精品一区二区三区高清 | 中文在线观看免费视频 | 健身教练巨大粗爽gay视频 | 成人录像 | 亚洲AV午夜福利精品一级无码 | 欧美丰满少妇人妻精品 | 精品国产人妻一区二区三区 | 中文在线第一页 | 97se视频| 原神淫辱系列同人h | 天天躁夜夜躁av天天爽 | 那里有毛片看 | 亚洲自拍偷拍一区 |