JVM GC 垃圾回收(二)之 判断那些可回收,怎么回收
1、哪些对象可回收?
可行性分析算法
通过一系列GC Roots(®1)作为起始点,其到对象之间的引用(®2)称为引用链,当对象到GC Roots之间不存在引用链相连,
则此对象是不可用的。如下,Object5,Object6,Object7被判定为可回收对象。
2、怎么回收?
3、方法区回收:
a.废弃常量:
没有任何String对象引用常量池的常量,也没有其他地方引用这个常量。
b.无用的类:
下列条件全部满足:
1.该类所有的实例都已经被回收。
2.加载改类的ClassLoader已经被回收
3.该类对应的java.lang.Class对象没有在任何地方被引用,无法在任何地方通过反射访问该类的方法。
®1 GC Roots
1.虚拟机栈中引用的对象
2.方法区中类静态属性引用的对象
3.方法区中常量引用的对象
4.本地方法栈中JNI引用的对象(java中C/C++编写的方法)
®2 引用
强引用:new 对象,引用还存在,对象不回收。
软引用:有用但非必需的对象。系统将要内存溢出之前,将这些对象列进回收范围中进行第二次回收。回收完内存还不够,则内存溢出。
弱引用:非必需对象。只能生存到下次垃圾回收之前。
虚引用:回收之前收到系统通知。
转载于:https://www.cnblogs.com/codegod/p/8444071.html
JVM GC 垃圾回收(二)之 判断那些可回收,怎么回收相关推荐
- jvm gc垃圾回收机制和参数说明amp;amp;Java JVM 垃圾回收(GC 在什么时候,对什么东西,做了什么事情)
jvm gc(垃圾回收机制) Java JVM 垃圾回收(GC 在什么时候,对什么东西,做了什么事情) 前言:(先大概了解一下整个过程) 作者:知乎用户 链接:https://www.zhihu.c ...
- JVM—GC垃圾回收器总结
引言 如果说收集算法(标记-清理.复制.标记-整理.分代收集)是内存回收的方法论,那毫无疑问,垃圾收集器就是内存回收的具体实现. 主要有7个gc器,如下图: Serial收集器 介绍 Se ...
- JVM学习笔记(二):垃圾回收、垃圾回收算法、垃圾回收器(Serial、Parallel、CMC、G1)、内存分配原则实战
垃圾回收 一.判断对象是否可以被回收 1.引用计数计数法 内容:在对象中添加一个引用计数器,每当有一个地方引用它,计数器就加一:当引用失效时,计数器就减一:任何时刻计数器为零的对象都是不可能在被使用的 ...
- [Java基础]-- Java GC 垃圾回收器的分类和优缺点
关于Java的垃圾回收器,一直是个头疼的问题,这里简要说明下分类和优缺点,供选择使用. 一.JVM GC 垃圾回收器类型 JVM的垃圾回收器大致分为六种类型: 1.串行:垃圾回收器 (Serial G ...
- java服务器gc停顿_如何避免后台IO高负载造成的长时间JVM GC停顿(转)
译者著:其实本文的中心意思非常简单,没有耐心的读者建议直接拉到最后看结论部分,有兴趣的读者可以详细阅读一下. 原文发表于Linkedin Engineering,作者 Zhenyun Zhuang是L ...
- JVM架构和GC垃圾回收机制详解
JVM架构图分析 下图:参考网络+书籍,如有侵权请见谅 (想了解Hadoop内存溢出请看: Hadoop内存溢出(OOM)分类.参数调优化) JVM被分为三个主要的子系统 (1)类加载器子系统(2)运 ...
- 深入了解JVM之垃圾回收(二)
文章目录 一.前言 二.问题 1.哪些内存需要回收? 2.在根搜索算法中,什么对象可以成为GC Roots? 3.在根搜索算法中,如何确定对象死亡? 4.方法区需要回收对象吗?回收什么对象?这个对象需 ...
- 22-09-02 西安 JVM 类加载器、栈、堆体系、堆参数调优、GC垃圾判定、垃圾回收算法、对象的finalize机制
这篇文章不少地方都截图了宋红康老师的课件,实在他jvm这块讲的真好.连接地址如下: 尚硅谷宋红康JVM全套教程(详解java虚拟机)_哔哩哔哩_bilibili JVM入门 1.JVM结构图 JVM是 ...
- 2021-08-20【JVM系列-2】 GC垃圾回收
文章目录 前言 一.如何判断对象可以回收 1.1 引用计数法 1.2 可达性分析算法 1.3 四种引用 (强软弱虚) 二.垃圾回收算法 2.1 标记-清除 2.2 标记-整理 标记-复制 三.分代回收 ...
最新文章
- iTerm2配置自动通过堡垒机登录服务器
- shell实例第9讲:判断用户输入的是否为IP地址
- Spring Boot的第一个入门程序 HelloWorld
- 微信小程序怎么在wxml中插入多个图片_兰州小程序开发流程费用推荐品牌_便企网...
- 最高的奖励 51Nod - 1163(贪心+并查集)
- 微信小程序css之线性渐变
- 浅谈消息队列的原理及优势
- mysql并行加载机制_Mysql表引擎优化
- java 和mysql 时间_java和mysql之间的时间日期类型传递
- 【ArcGIS|空间分析】数据采集处理(全国大学生GIS技能大赛试题)
- cloudera search1.0.0环境搭建(2):利用flume-ng的MorphlineSolrSink实现近实时(NRT)搜索
- 这几天可能是长时间关注电脑,眼睛没有得到休息,所以就早上起来眼睛有点通...
- openGL绘制地球
- c# 检测中英输入法_C# Winform 中如何获取本机安装输入法,并设置为默认输出语言,如何打开搜狗输入法和手写板...
- 【Maven】Idea搭建多Module项目修修补补
- Java基础进阶Day04
- CSS中禁止文本选中和鼠标悬入变手型(已解决)
- 项目开发——课程表查询APP
- Linux修改系统时间为东八区北京时间(上海时间)
- 微信html5 支付接口,黄聪:详解申请微信h5支付方法,开通微信h5网页支付接口(转)...