JVM垃圾回收算法以及垃圾收集器

news2024/11/13 10:44:38

JVM垃圾回收算法

JVM垃圾回收算法分为三类:标记清除算法、标记整理算法、 复制算法

标记清除算法

垃圾回收分为2个阶段,分别是标记和清除,效率高有磁盘碎片,内存不连续
在这里插入图片描述

标记整理算法

标记清除算法一样,将存活对象都向内存另一端移动,然后清理边界以外的垃圾,无碎片,对象需要移动,效率低

在这里插入图片描述

复制算法

将原有的内存空间一分为二,每次只用其中的一块正在使用的对象复制到另一个内存空间中,然后将该内存空间清空,交换两个为存的角色,完成垃圾的回收;无碎片,内存使用率低
在这里插入图片描述

MinorGC、Mixed GC、FullGC的区别

在这里插入图片描述

JVM分代回收

一、堆的区域划分

  1. 堆被分为了两份:新生代和老年代【1:2】
  2. 对于新生代,内部又被分为了三个区域。Eden区,幸存者区survivor(分成from和to)【8:1:1】

二、对象回收分代回收策略

  1. 新创建的对象,都会先分配到eden区
  2. 当伊甸园内存不足,标记伊甸园与from(现阶段没有)的存活双付象
  3. 将存活对象采用复制算法复制到to中,复制完毕后,伊甸园和from内存都得到释放
  4. 经过一段时间后伊甸园的内存又出现不足,标记eden区域to区存活的对象,将其复制到from区
  5. 当幸存区对象熬过几次回收(最多15次),晋升到老年代(幸存区内存不足或大对象会提前晋升)

垃圾收集器

在这里插入图片描述
在这里插入图片描述
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/6551a52a72204f6c84da3eec697929e3.jpeg
在这里插入图片描述
在这里插入图片描述

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

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

相关文章

Windows 11系统 Eclipse 2024版本安装教程和环境搭建

文章目录 目录 文章目录 安装流程 小结 概要安装流程技术细节小结 概要 Eclipse 是一个开源的集成开发环境 (IDE),主要用于 Java 开发,但也支持其他编程语言如 C、Python 和 PHP。它提供了丰富的工具和插件,用于编写、调试和管理代码&#x…

【时时三省】(C语言基础)指针进阶4

山不在高,有仙则名。水不在深,有龙则灵。 ----CSDN 时时三省 阅读两段有趣的代码: 代码1: (*(void(*)())0)(); 意思是调用0地址处的函数 该函数无参,返回类型是void 1.void(*)()-函数指针 2.(void(*)())0-对0进…

Python编码系列—Python中的安全密码存储与验证:实战指南

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

基于SSM+JSP的手机商城系统网站

系统背景 系统管理也都将通过计算机进行整体智能化操作,对于网上手机商城所牵扯的管理及数据保存都是非常多的,例如管理员;主页、个人中心、用户管理、商品分类管理、商品信息管理、系统管理、订单管理,用户;主页、个人…

快速了解Git服务器端基础及基本操作命令(一)

😀前言 本篇博文是关于Git服务器端的一些基础使用及基本操作命令,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意…

力扣面试150 插入区间 模拟

Problem: 57. 插入区间 &#x1f468;‍&#x1f3eb; 代码随想录 模拟 ⏰ 时间复杂度&#xff1a; O ( n ) O(n) O(n) class Solution {public int[][] insert(int[][] intervals, int[] newInterval) {int idx 0;List<int[]> res new ArrayList<>();while (…

如何用Hive进行高校考试分析:大数据技术提升教育质量

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

论文的AI含量检测靠谱吗

近年来&#xff0c;随着AI技术的飞速发展&#xff0c;越来越多的人开始关注AI在写作领域的应用&#xff0c;尤其是在学术论文中的应用。然而&#xff0c;这也催生了一些新的服务&#xff0c;如“AI含量检测”&#xff0c;声称能够检测论文中是否存在AI生成的内容。这些服务往往…

理想自动驾驶技术:探索双系统架构,自动驾驶锁定第一梯队

1、 无图 NOA 全量推送&#xff0c;向 One Model 进发 理想全国无图 NOA 全量推送实现快速追赶。理想 2021 年开始自研自动驾驶&#xff0c;并于2021 年 12 月落地高速 NOA 功能&#xff0c;进展处于国内领先水平&#xff0c;而蔚来、小鹏分别在 2020年 10 月、2021 年 1 月落…

【架构设计】安全架构设计

安全架构概述 在当今以计算机、网络和软件为载体的数字化服务几乎成为人类社会赖以生存的手段&#xff0c;与之而来的计算机犯罪呈现指数上升趋势&#xff0c;因此&#xff0c;信息的可用性、完整性、机密性、可控性和不可抵赖性等安全保障有位重要&#xff0c;为满足这些诉求&…

【Python 千题 —— 基础篇】简易图书管理系统

Python 千题持续更新中 …… 脑图地址 👉:⭐https://twilight-fanyi.gitee.io/mind-map/Python千题.html⭐ 题目描述 题目描述 编写一个面向对象的程序,模拟一个图书管理系统。要求定义一个 Book 类,具有基本的书籍信息功能;然后,创建一个 Library 类,用于管理多个 B…

银河麒麟编译libjpeg库并配置qt环境

1、系统版本:银河麒麟V10 2、libjpeg库下载:http://www.ijg.org/ 其中:files里面是既往的版本 3、 1)解压:jpegsrc.v9f.tar.gz 2)cd jpeg-9f 3) 编译参数解释: ./configure -h # 查看编译参数 --enable-shared # 编译动态库 --enable-static # 编译静态库 --w…

探索社区O2O系统源码开发:构建智慧生活的桥梁

随着互联网的飞速发展&#xff0c;特别是移动互联网的普及&#xff0c;线上线下融合&#xff08;O2O&#xff0c;Online to Offline&#xff09;模式已成为推动各行各业转型升级的重要力量。在社区服务领域&#xff0c;社区O2O系统的开发更是为居民生活带来了前所未有的便利与智…

Parallels Desktop 19发布,无需重启即可在 Mac 上运行 Windows

​ Parallels最新版本旨在优化最新 Apple 硬件的可用性&#xff0c;同时还支持性能和游戏更新&#xff0c;为用户提供更大的自由度和灵活性。 其可在 Mac 上运行超过 200000 个 Windows 应用程序&#xff0c;包括 Microsoft Office for Windows。在 Intel 或 Apple M 系列 Mac…

浅谈Kafka(二)

浅谈Kafka&#xff08;二&#xff09; 文章目录 浅谈Kafka&#xff08;二&#xff09;Kafka架构图Kafka生产者幂等性与事务生产者分区写入策略乱序问题消费者组的Reblance机制消费者分区分配策略副本机制分区的leader与followerAR/ISR/OSRcontroller介绍与选举Leader负载均衡Ka…

【Linux】07.Linux 下的项目自动化构建工具——make/makefile

前言 会不会写makefile&#xff0c;从一个侧面说明了一个人是否具备完成大型工程的能力一个工程中的源文件不计数&#xff0c;其按类型、功能、模块分别放在若干个目录中&#xff0c;makefile定义了一系列的规则来指定&#xff0c;哪些文件需要先编译&#xff0c;哪些文件需要…

序列化组件对比

1、msgpack介绍 1.MsgPack产生的数据更小&#xff0c;从而在数据传输过程中网络压力更小 2.MsgPack兼容性差&#xff0c;必须按照顺序保存字段 3.MsgPack是二进制序列化格式&#xff0c;兼容跨语言 官网地址&#xff1a; https://msgpack.org/ 官方介绍&#xff1a;Its lik…

Android13系统源码内置App并通过AIDL调用获取内置存储卡的真实大小

jix 进行从事Android系统源码开发不得不在原有的系统上内置自己的App。通过内置App一般都需要调用些系统才能访问的系统级App。App的部署和调试需要依赖源码系统。通过命令 &#xff1a; mm 来实现。 第三方App想调用内置的app需要通过跨进程调用。 这里通过AIDL来实现跨进程…

RK3568平台(平台总线篇)SPI驱动框架分析

一.SPI 子系统框架 可以将上面这一 SPI 子系统划分为三个层次,分别为用户空间、内核空间和硬件层,内核空间就包括 SPI 设备驱动层、SPI 核心层和 SPI 适配器驱动层,而本章的主要内容就是介绍 SPI 子系统框架中的内核空间。 SPI 适配器驱动层: SPI 适配器驱动层是 SPI 子系…

【STM32】SPI

SPI又是另一个超级常见的外设通信方式。 大部分图片来源&#xff1a;正点原子HAL库课程 专栏目录&#xff1a;记录自己的嵌入式学习之路-CSDN博客 目录 1 基本概念 1.1 与IIC的区别 1.2 引脚 1.3 移位原理 1.4 四种工作模式 2 NOR Flash 2.1 25Q12…