Java垃圾回收机制

news2024/12/27 18:20:16

Java垃圾回收机制

  • 垃圾回收算法
    • 为什么垃圾回收
    • 回收哪些内存
    • 如何回收
      • Marking-Sweep(标记-清除法)
      • Marking-Compat(标记-整理法)
  • 内存分代
    • 年轻代
  • Minor gc和Major gc的区别
  • 常见回收器
    • Serial Garbage Collector
    • Parallel Garbage Collector
    • CMS Garbage Collector
    • G1 Garbage Collector

垃圾回收算法

为什么垃圾回收

方便程序员写代码的时候,管理内存。有了这个自动的垃圾回收机制,不需要手动地分配内存和回收内存。这些JVM已经完成。

回收哪些内存

使用可达性分析算法。每个对象都有自己的引用。没有被GC Roots引用的对象都是可以被回收的对象。

在这里插入图片描述
根对象包括哪些:

  1. 虚拟机栈中的引用的对象
  2. 方法区中的类静态属性引用的对象
  3. 方法区中的常量引用的对象
  4. 本地方法栈中JNI(Native方法)的引用的对象。

如何回收

Marking-Sweep(标记-清除法)

在这里插入图片描述
在这里插入图片描述
会产生碎片,可能造成内存不足的问题。

Marking-Compat(标记-整理法)

在这里插入图片描述

内存分代

在这里插入图片描述
老年代,空间比较大,主要存放一些比较老的对象。

方法区主要存放一些常量和一些静态属性。

内存分配的第一个代会分配到年轻代中。

分代的原因是因为对象的生命周期不同。

年轻代

在这里插入图片描述
S1区也称为from区,S2区也称为to区。
首先会在Eden区进行分配,如果空间不足的话,会将Eden中的对象放入到S0中,并且将他们的年龄置为1(1岁):
在这里插入图片描述
如果S0中内存区域不足的话,会将S0中的对象放到S1中去,且年龄增加一岁,变成2(2岁):
在这里插入图片描述
下一次则从S1中回到S0, 年龄又加1,不停地交换移动。
在这里插入图片描述
达到一定年龄后停止,例如8后,则放到老年中,变成9:
在这里插入图片描述

Minor gc和Major gc的区别

老年代回收频率比较低,不如年轻代,年轻代中多是朝生夕死的对象。老年代中存放的对象多是年龄比较高而且比较大的对象。老年代回收称为Major gc。
在这里插入图片描述

常见回收器

Serial Garbage Collector

单线程GC

Parallel Garbage Collector

多线程GC

CMS Garbage Collector

多线程GC

G1 Garbage Collector

jdk7引进GC,多线程,高并发,低延迟。逐步取代CMS GC。

参考资料:【Java面试题】Java垃圾回收机制

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

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

相关文章

InnoDB的表空间

独立表空间结构 区概念 连续的64个页就是一个区,也就是说一个区默认用1MB空间大小。表空间由若干个连续的区(物理位置上的连续)组成的,256的区被划分成一组。 其中,extent0~extent256个区算是第一组,exten…

基于微信小程序的家政服务预约系统的设计与实现

基于微信小程序的家政预约系统,有效解决了人们网上随时预约家政服务的问题。依托于新的小程序开发环境,解决了"跨系统开发"这个难题,在一个"类操作底层"开发基于微信小程序的家政服务应用。功能模块包括:家政服务项目展示模块,服务报价模块,用户留言评价模…

零门槛,手把手教你玩转ChatGPT,顺滑般国内使用chatGPT

国内是可以玩ChatGPT的,只需要去官网注册一个OpenAI帐号,然后使用第三方接码平台获取短信验证码,就可以成功注册帐号,注册成功之后国内就可以随意使用chatGPT啦。 国内怎么玩chatGPT如下: 官方原版 一、注册OpenAI账…

ansible——编写循环和条件任务

环境:RH294 1. 以student用户的身份并使用student作为密码登录workstation ssh studentworkstation 在workstation上,运行lab control-flow start命令,此命令会创建control-flow工作目录 lab control-flow start 2. 切换到/home/studen…

Python中PIL库的常用用法示例

Python中的PIL(Python Imaging Library,已更名为Pillow)是一个功能强大的图像处理库。以下是一些常用的PIL功能及相应的代码示例: 1. 打开和保存图像: from PIL import Image# 打开图像 image Image.open("exam…

B+G双轮驱动,税友股份迎来数字化东风

配图来自Canva可画 不知不觉之间,国内的数字经济已经蔚然成潮。据相关部门的统计数据显示,去年国内数字经济规模已经达到了50万亿,占到了国内GDP总量的40%以上,增速更是持续领先于GDP增速。与此同时,随着数字中国战略…

权限提升:网站漏洞(提权思路.)

权限提升:网站漏洞 权限提升简称提权,由于操作系统都是多用户操作系统,用户之间都有权限控制,比如通过 Web 漏洞拿到的是 Web 进程的权限,往往 Web 服务都是以一个权限很低的账号启动的,因此通过 Webshell …

The Foundry Modo 16 for Mac v16.1v3 含历史版本

The Foundry MODO是一个功能强大的3D建模、动画和渲染软件,被广泛应用于游戏开发、电影制作、产品设计和建筑可视化等领域。 以下是一些MODO的优点: 1. 强大的建模工具:MODO提供了一系列丰富的建模工具,包括多边形建模、NURBS建…

mysql索引失效的坑

目录 前言 博客文章分享 对索引字段做函数操作 隐式类型转换 隐式字符编码转换 原因分析 解决方法: 前言 在MySQL中,有时候会因为语句使用不当导致sql不走索引,从而使数据库的压力变大。本篇分享一下sql不走索引的坑,让大家…

Nginx 和Rewrite

系列文章目录 文章目录 系列文章目录一、常规的nginx正则表达式1.location和rewrite的区别2.常用的nginx的正则表达式3.nginx里面的优先级 二、rewrite1.Rewrite2.实验 总结 一、常规的nginx正则表达式 1.location和rewrite的区别 从功能看 rewrite 和 location 似乎有点像&a…

GPT-2隐私泄露论文阅读:Extracting Training Data from Large Language Models

文章目录 论文地址:原文阐释:渔樵问对:原理梗概预防策略隐私策略这个新颖的攻击方式是什么?三种典型采样策略:隐私风险文章第5页第二段中提到的 memorized training exam ple 是什么意思 ThreatModel &Ethics什么是文本的zlib…

【Apache 网页与安全优化】

1.网页压缩 检查是否安装 mod_deflate 模块 apachectl -t -D DUMP_MODULES | grep "deflate"如果没有安装mod_deflate 模块,重新编译安装 Apache 添加 mod_deflate 模块 systemctl stop httpd.service cd /usr/local/httpd/conf mv httpd.conf httpd.c…

数字硬件建模SystemVerilog-通信总线建模 --Interface端口的概念

来到了SV最后一部分,预计三篇文章,两周更完,所有的思维导图如下: 概述 SystemVerilog Interface是modport的一种,但比简单的输入、输出或输入输出端口的功能更多。在其最简单的形式中,Interface端口将相关的…

关于户外旋转LED显示屏的核心技术

户外旋转LED显示屏因可视范围达360的新颖结构,并且成本低廉,而得到了迅速的发展。虽然看着外观与普通LED显示屏没有什么大的异样,但为使设计的户外旋转LED显示屏具有较好的显示效果,背后也是需要通过众多工程技术人员克服技术难点…

git lfs简易使用教程

参考资料: https://zzz.buzz/zh/2016/04/19/the-guide-to-git-lfs/ 这篇随笔简单记录一下git lfs的使用教程,只记录最为常用的部分,并阐述原理,方便后面查阅。 首先说明一下git lfs的原理,看名称:git lfs。…

电力监控系统在智能建筑电气节能中的应用

摘要:电力监控系统在智能建筑中被广泛使用,其以及时、稳定、安全、便捷的优点提高了电能使用效率,节约了成本。借助电力监控系统能准确判断故障发生原因和位置,为智能建筑的安全性和智能化发展提供了有力的支持 关键词&#xff1…

华为,找寻科技秋天里的春光

捷克导演伏拉基米尔米切尔在2001年指导了一部电影,叫做《秋天里的春光 Bab lto》。 我很喜欢这个名字,它吐露着一种简单质朴的美好。回望历史,我们会发现文明与知识经常陷入秋天,但却因为人类的一次次努力,最终我们迎来…

电脑提示vcruntime140_1.dll丢失的正确修复方法

vcruntime140_1.dll是vs2010编译的程序默认的库文件它的丢失易导致游戏、应用软件等程序运行出现错误,致使程序无法正常运行,下面小编教大家电脑提示vcruntime140_1.dll丢失的正确修复教程 首先打开一个360,搜狗等等电脑浏览器,输…

ProxySQL技术实践分享

一、ProxySQL基本介绍 1.1 前言 ProxySQL是 MySQL 的高性能、高可用性、协议感知代理。以下为结合主从复制对ProxySQL读写分离、黑白名单、路由规则等做些基本测试。 1.2 基本介绍 先简单介绍下ProxySQL及其功能和配置,主要包括: 最基本的读/写分离&…

扬帆优配|北海道拉响警报!市场惊现500亿超级空单,有何大事?

又见超级大空单! 据英国《金融时报》周三援引其剖析过的监管文件报导称,日本软银集团已开端出售其在阿里巴巴(9988.HK)简直一切剩下股份。陈述弥补说,这家由亿万富翁孙正义为创始人领导的日本集团本年经过预付远期合约…