理解jvm之对象已死怎么判断?

news2025/1/11 14:28:20

目录

引用计数算法

什么是引用

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


引用计数算法

定义:在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。

但是不能解决循环引用的问题,A引用B,B引用A,这个对象的引用计数就不可能为0.这两个对象不会被别的任何对象引用,却不会被回收

什么是引用

 对象引用的四个等级:

为什么说要有这个设置:为了满足当内存空间还足够时,能保留在内存之中,如果内存空间在进行垃圾收集后仍然非常紧张,那就可以抛弃这些对象。

  1. 强引用:new Object(),只有当判断对象已经死的时候,才回收
  2. 软引用:在系统要发生oom,会回收所有的软引用对象,如果回收完,还是放不上这个对象,才溢出。,每次垃圾回收的时候,如果对象还没死,就不回收,但是在oom之前,不管有没有死,都会被回收。系统要发生oom,会回收所有的软引用对象,如果回收完,还是放不上这个对象,才溢出。
  3. 弱引用:在每次垃圾回收的时候,不管有没有引用,都会被回收。
  4. 虚引用:相当于什么时候回收都没问题,也无法通过虚引用来取得一个对象实例。为一个对象设置虚引用关联的唯一目的只是为了能在这个对象被收集器回收时收到一个系统通知

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

当这个对象,与GCROOT对象没有关联的时候,就认为这个对象已经死亡了。GCROOT包括四类:两个栈两个方法区。(比如User对象在栈中有关联,或者说这个对象在方法区中有static用着他)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/878004.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

用ngrok实现内网穿透,一行命令就搞定!

最近在写支付的东西,调试时候需要让支付平台能够回调本地接口来更新支付成功的状态。但由于开发机器没有公网IP,所以需要使用内网穿透来让支付平台能够成功访问到本地开发机器,这样才能更高效率的进行调试。 推荐内网穿透的文章已经很多很多…

Stable Diffusion 插件开发经验

Stable Diffusion近来大热,但是插件开发的资料少之又少。 这里提供一些插件开发的经验,可供参考。 1.替换启动页。 如果你想要在运行Stable Diffusion的基础上想要一些独有的操作,不想要进行裁剪,直接替换启动页面,那么就需要在webui中进行替换 这里modules.ui.create_ui…

FPGA通过MIG IP读写DDR3

一. 简介 本期将接收如何驱动DDR3存储器,当然不会像SDRAM那样,自己手写驱动;而是借助Vivado提供的MIG IP来完成这项工作。但是建议在学习DDR3之前,可以学习一下且写一下SDRAM的驱动,因为它们的涉及到的存储原理和框架…

THUDM/chatglm2-6b-int4体验

在gpu下 gpu: Telsa T4 资源消耗:RAM大概4G,GPU显存大概6G # 安装transformers等包 !pip install protobuf transformers4.30.2 cpm_kernels torch>2.0 gradio mdtex2html sentencepiece accelerate# 导入AutoTokenizer, AutoModel from…

react 09之状态管理工具1 redux+ react-thunk的使用实现跨组件状态管理与异步操作

目录 react 09之状态管理工具1 redux react-thunk的使用实现跨组件状态管理与异步操作store / index.js store的入口文件index.js 在项目入口文件 引入store / actionType.js 定义action的唯一标识store / reducers / index.jsstore / actions / form.jsstore / reducers / for…

关于PMP中的敏捷知识

在此次改版中,题目中增加了大量的敏捷题型,总体比重仍然很高,据我的主观感觉,达到了1/3。与ACP认证相比,PMP对敏捷管理技术的考察相对简单,考察路径也较为集中,主要聚焦于以下两个方面&#xff…

Python-OpenCV中的图像处理-图像特征

Python-OpenCV中的图像处理-图像特征 图像特征Harris角点检测亚像素级精度的角点检测Shi-Tomasi角点检测SIFT(Scale-Invariant Feature Transfrom)SURF(Speeded-Up Robust Features) 图像特征 特征理解特征检测特征描述 Harris角点检测 cv2.cornerHarris(img, blockSize, ks…

Nodejs 第十一章(CSR SSR SEO)

概述 在上一章的时候我们说过在node环境中无法操作DOM 和 BOM,但是如果非要操作DOM 和 BOM 也是可以的我们需要使用第三方库帮助我们jsdom npm i jsdomjsdom 是一个模拟浏览器环境的库,可以在 Node.js 中使用 DOM API 简单案例 const fs require(no…

mfc140u.dll丢失的解决方法-mfc140u.dll是什么文件

在使用计算机过程中,我们经常会遇到各种错误提示和问题,其中一个常见的问题是与mfc140u.dll文件有关的错误。mfc140u.dll是Microsoft Foundation Classes(MFC)的一个动态链接库文件,它提供了许多用于开发Windows应用程序的函数和类。 当mfc1…

不同模块之间解决service层与dao层无法注入的问题

方法一(建议): 方法一是导入其它模块的dao层与service层完成自动注解的问题 方法二: 指定扫码哦基础包,不推荐该方法额原因是因为扫描这么多包 而且每个模块的配置类之间可能存在冲突

CSDN热榜分析:来看看热榜都在写什么

文章目录 数据爬取词云制作滤除停用词 数据爬取 热榜地址是https://blog.csdn.net/rank/list,先进去再说 from selenium import webdriver from selenium.webdriver.common.by import By url https://blog.csdn.net/rank/list driver webdriver.Edge() driver.g…

Java8函数式编程

ISBN: 978-7-115-38488-1 作者:【英】Richard Warburton 页数:132页 阅读时间:2023-08-05 推荐指数:★★★★★ 练习项目:https://github.com/RichardWarburton/java-8-lambdas-exercises 虽然这本书出版于2014年&…

LCP 44.开幕式焰火

目录 一、题目 二、代码 一、题目 二、代码 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode(int x) : val(x), left(NULL), right(NULL) {}* };*/ class Solution { public:static i…

UG NX二次开发(C++)-PK函数创建一条圆弧曲线

文章目录 1、前言2、创建一个项目3、添加头文件4、在do_it中添加创建圆曲线的源代码5、调用dll6、再创建一个长方体验证1、前言 采用PK进行UG NX二次开发,现在看到的文章很多是直接创建实体,然后在UG NX的视图区显示出来,对于创建圆曲线的文章不多,本文讲一下PK函数创建圆…

安卓逆向 - Frida Hook(抓包实践)

一、引言 上篇文章:安卓逆向 - 基础入门教程_小馒头yy的博客-CSDN博客 介绍了Frida的安装、基本使用,今天我们来看看Frida常用Hook和基于Frida抓包实践。 二、Frida常用 Hook脚本 1、hook java.net.URL function hook1() {var URL Java.use(java.n…

POI处理excel,根据XLOOKUP发现部分公式格式不支持问题

poi4不支持XLOOKUP函数,但poi最新的5.2.3却已经对此函数做了支持 poi下载地址:Index of /dist/poi/release/bin 公式源码位置:org/apache/poi/ss/formula/atp/XLookupFunction.java 但是在使用此函数过程中,发现有些XLOOKUP函数会…

基于Java+SpringBoot+Vue前后端分离仓库管理系统详细设计和实现

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

JSON字符串转换

大家好 , 我是苏麟 , 今天带来一个JSON序列化库 Gson . GitHub 地址 : GitHub - google/gson: A Java serialization/deserialization library to convert Java Objects into JSON and back java 中 json 序列化库有很多: gson (谷歌的) fastjson (阿里的) jack…

numba 入门示例

一维向量求和: C A B 在有nv 近几年gpu的ubuntu 机器上, 环境预备: conda create -name numba_cuda_python3.10 python3.10 conda activate numba_cuda_python3.10conda install numba conda install cudatoolkit conda install -c nvi…

Java多线程编程中的线程控制:挂起、停止和恢复

Java 线程控制:挂起、停止和恢复 在多线程编程中,对线程进行控制是非常重要的,可以通过挂起、停止和恢复线程来实现对线程的管理。本文将介绍如何使用Java提供的方法对线程进行挂起、停止和恢复操作,以及需要注意的安全性和替代方…