理解jvm之對象已死怎么判斷?

目錄

引用計數算法

什么是引用

可達性分析算法(用的最多的)


引用計數算法

定義:在對象中添加一個引用計數器,每當有一個地方引用它時,計數器值就加一;當引用失效時,計數器值就減一;任何時刻計數器為零的對象就是不可能再被使用的。

但是不能解決循環引用的問題,A引用B,B引用A,這個對象的引用計數就不可能為0.這兩個對象不會被別的任何對象引用,卻不會被回收

什么是引用

?對象引用的四個等級:

為什么說要有這個設置:為了滿足當內存空間還足夠時,能保留在內存之中,如果內存空間在進行垃圾收集后仍然非常緊張,那就可以拋棄這些對象。

  1. 強引用:new Object(),只有當判斷對象已經死的時候,才回收
  2. 軟引用:在系統要發生oom,會回收所有的軟引用對象,如果回收完,還是放不上這個對象,才溢出。,每次垃圾回收的時候,如果對象還沒死,就不回收,但是在oom之前,不管有沒有死,都會被回收。系統要發生oom,會回收所有的軟引用對象,如果回收完,還是放不上這個對象,才溢出。
  3. 弱引用:在每次垃圾回收的時候,不管有沒有引用,都會被回收。
  4. 虛引用:相當于什么時候回收都沒問題,也無法通過虛引用來取得一個對象實例。為一個對象設置虛引用關聯的唯一目的只是為了能在這個對象被收集器回收時收到一個系統通知

可達性分析算法(用的最多的)

當這個對象,與GCROOT對象沒有關聯的時候,就認為這個對象已經死亡了。GCROOT包括四類:兩個棧兩個方法區。(比如User對象在棧中有關聯,或者說這個對象在方法區中有static用著他)

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/36584.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/36584.shtml
英文地址,請注明出處:http://en.pswp.cn/news/36584.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

文件批量改名高手:輕松刪除文件名,僅保留編號!

您是否經常需要對大量文件進行命名調整?是否為繁瑣的手動操作而感到厭煩?現在,我們的智能批量文件改名工具為您提供了一種簡單而高效的解決方案!只需幾步操作,您就能輕松刪除原有的文件名,僅保留編號&#…

YOLO相關原理(文件結構、視頻檢測等)

超參數進化(hyperparameter evolution) 超參數進化是一種使用了genetic algorithm(GA)遺傳算法進行超參數優化的一種方法。 YOLOv5的文件結構 images文件夾內的文件和labels中的文件存在一一對應關系 激活函數:非線性處理單元 activation f…

c#學習路線

文章目錄 .net coreN層架構大項目實戰高性能互聯網項目架構c#高級編程各種主流框架分布式通信SSO單點登錄+權限管理系統實戰N層架構WEB安全ASP.NET MVCNoSQLORM框架c#6和c#7新語法VS插件分享項目管理三層項目實戰三層架構ASP.NET基礎數據庫和ASP.NETADO.NET計算機基礎計算機硬件…

C# 11 中的新增功能

本文內容 泛型屬性泛型數學支持數值 IntPtr 和 UIntPtr字符串內插中的換行符 顯示另外 11 個 C# 11 中增加了以下功能: 原始字符串字面量泛型數學支持泛型屬性UTF-8 字符串字面量字符串內插表達式中的換行符列表模式文件本地類型必需的成員自動默認結構常量 str…

【設計模式】MVC 模式

MVC 模式代表 Model-View-Controller(模型-視圖-控制器) 模式。這種模式用于應用程序的分層開發。 Model(模型) - 模型代表一個存取數據的對象或 JAVA POJO。它也可以帶有邏輯,在數據變化時更新控制器。View&#xff…

Linux6.37 Kubernetes 集群調度

文章目錄 計算機系統5G云計算第三章 LINUX Kubernetes 集群調度一、調度約束1.調度過程2.指定調度節點3.親和性1)節點親和性2)Pod 親和性3)鍵值運算關系 4.污點(Taint) 和 容忍(Tolerations)1)污點(Taint)2)容忍(Toler…

centos搭建k8s

centos搭建k8s環境_centos k8s_進擊的Coders的博客-CSDN博客

VSCODE[配置ssh免密遠程登錄]

配置ssh免密遠程登錄 本文摘錄于:https://blog.csdn.net/qq_44571245/article/details/123031276只是做學習備份之用,絕無抄襲之意,有疑惑請聯系本人! 這里要注意如下幾個地方: 1.要進入.ssh目錄創建文件: 2.是拷貝帶"ssh-…

微服務系列文章之 Springboot+Vue實現登錄注冊

一、springBoot 創建springBoot項目 分為三個包,分別為controller,service, dao以及resource目錄下的xml文件。 UserController.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 …

如何利用 EMC 模型解決能源服務提供商的瓶頸

01. 什么是合同能源管理? 合同能源管理(EMC-Energy Management Contract) 是一種新型的市場化節能機制,其實質就是以減少的能源費用來支付節能項目全部成本的節能投資方式。:節能服務公司與用能單位以契約形式約定節能項目的節能目標,節能服…

(二)Node.js 基礎模塊

(二)Node.js 基礎模塊 1. fs文件系統模塊1.1 什么是fs文件系統模塊1.2 讀取指定文件中的內容1. fs.readFile()的語法格式2. fs.readFile()的示例代碼 1.3 向指定的文件中寫入內容1. fs.writeFile()的語法格式2. fs.writeFile()的實例代碼 1.4 __dirname …

正則表達式的使用

1、正則表達式-教程 正則表達式:文本模式,包括普通字符(例如,a到z之間的字母)和特殊字符(稱為元字符)。 正則表達式使用單個字符串來描述,匹配一系列匹配某個句法規則的字符串。 2、…

《論文閱讀13》Efficient Urban-scale Point Clouds Segmentationwith BEV Projection

一、論文 研究領域: 城市級3D語義分割論文:Efficient Urban-scale Point Clouds Segmentationwith BEV Projection清華大學,新疆大學2021.9.19論文github論文鏈接 二、論文概要 2.1主要思路 提出了城市級3D語義分割新的方法,將…

1.SpringMVC接收請求參數及數據回顯:前端url地址欄傳遞參數通過轉發顯示在網頁

1、SpringMVC 處理前端提交的數據 1.1 提交的域名和處理方法的參數不一致,使用注解解決 1.2 提交的域名和處理方法的參數不一致,使用注解解決 1.3 提交的是一個對象 2、前端url地址欄傳遞的是一個參數 請求地址url:http://localhost:8080/s…

測試開發工程師到底是做什么的?

一二三線互聯網公司對測試開發工程師的要求: 現在很多測試的同事對測試開發工程師的認識都有一定的誤差。 我最早在阿里的時候和測試開發工程師溝通的時候,發現阿里的測試開發工程師,他們基本上都分為兩種,一種是業務類型的&…

Python基礎教程: json序列化詳細用法介紹

前言 嗨嘍,大家好呀~這里是愛看美女的茜茜吶 Python內置的json模塊提供了非常完善的對象到JSON格式的轉換。 廢話不多說,我們先看看如何把Python對象變成一個JSON: d dict(nameKaven, age17, sexMale) print(json.dumps(d)) # {"na…

【Linux】環境變量

目錄 一、環境變量的概念二、 常見的環境變量1.查看環境變量的方法2.PATH3.HOME4.SHELL 三、環境變量的相關指令四、命令行參數 一、環境變量的概念 環境變量(environment variables)一般是指在操作系統中用來指定操作系統運行環境的一些參數 如:我們在編寫C/C代碼的…

Prometheus技術文檔-基本使用-配置文件全解!!!!!

簡介: Prometheus是一個開源的系統監控和告警系統,由Google的BorgMon監控系統發展而來。它主要用于監控和度量各種時間序列數據,比如系統性能、網絡延遲、應用程序錯誤等。Prometheus通過采集監控數據并存儲在時間序列數據庫中,…

【視頻】使用OBS將MP4推流至騰訊云直播

1、下載OBS OBS官網:https://obsproject.com/ OBS支持Win、Mac、Linux,如果下載速度很慢,建議使用迅雷下載 2、OBS推流設置 2.1 添加場景 默認會有一個“場景”,如果想繼續添加可以點擊“+”按鈕 2.2 添加媒體源 1)點擊“來源”窗口中“+”按鈕 2)支持的媒體源如…

什么是Redis緩存雪崩、緩存穿透、緩存擊穿

緩存穿透(Cache Penetration) 什么是緩存穿透? 緩存穿透是指惡意或無效的請求導致緩存無法命中,從而每個請求都需要訪問數據庫。這可能發生在請求的數據根本不存在于緩存和數據庫中。 緩存穿透解決方案 使用布隆過濾器&#x…