Java虚拟机——垃圾收集算法

news2024/11/24 16:35:37
  • 垃圾收集算法的实现涉及大量的程序细节。
  • 这里只重点介绍 分代收集理论 和 几种算法思想及发展过程
    在这里插入图片描述

3.3.1 分代收集理论

  • 分代收集建立在两个 分代假说之上
  1. 弱分代假说 : 绝大多数对象都是朝生夕灭的
  2. 强分代假说: 熬过越多次垃圾收集过程的对象就越难以消亡。
  • 它们共同奠定了常用的垃圾收集器的一致的设计原则:收集器应该将Java堆划分出不同的区域,然后将回收对象依据其年龄分配到不同的区域之中存储。
  • 年龄:就是对象熬过垃圾收集过程的次数
    在这里插入图片描述
  • 分代收集理论放在现在的商用Java虚拟机里面,设计者一般会把Java堆分为 新生代和老年代。
  • 新生代中每垃圾收集都会有大批对象死去 , 而每次回收后存活的少量的对象,将会晋升到老年代中存放。
    在这里插入图片描述
  • 为了解决这个问题,多了第三条经验法则
  1. 跨代引用假说: 跨代引用相对于同代引用来说是极少数。(存在互相引用的两个对象,是应该倾向于同时生存或者同时消亡)
    在这里插入图片描述

针对不同分代的名词

在这里插入图片描述

3.3.2 标记-清除算法

  • 最早也是最基础的垃圾收集算法
    在这里插入图片描述

3.3.3 标记-复制算法

  • 也叫作复制算法,为了解决标记-清楚算法面对 大量可回收对象效率低的问题。

在这里插入图片描述

3.3.4 标记-整理算法

  • 针对老年代对象存亡的特征,1974年提出了标记-整理算法。
    在这里插入图片描述

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

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

相关文章

chatgpt赋能python:Python与数据库连接的完整指南

Python与数据库连接的完整指南 作为全球最受欢迎的编程语言之一,Python已经被广泛应用于各种领域,特别是与数据库的交互。 Python拥有用于连接各种数据库的强大库和API,其中包括MySQL,Oracle,PostgreSQL等。在这里&am…

远程控制和原理和实践

按理来说,本人不该发表此类专业的文章,但是从鄙人的开发经历出发,让本人斗胆在此对远控软件做一些论述,谈论一点自己的认识。 程序工程代码地址:点击此处下载。 程序分为两个部分,控制端和被控端&#xf…

【Note7】uboot,

文章目录 1.uboot1.U-Boot命令之常用命令:7.U-Boot命令之EMMC和SD卡操作命令:一般EMMC和SD卡是同一个东西,没特殊说明,统一MMC来代指EMMC和SD卡8.U-Boot命令之内存操作命令:直接对DRAM进行读写操作,uboot命…

CMake学习(7): CMake的嵌套

博客参考自:爱编程的大丙: https://subingwen.cn/cmake/CMake-primer/ ,仅供学习分享使用 如果项目很大,或者项目中有很多的源码目录,在通过 CMake 管理项目的时候如果只使用一个 CMakeLists.txt,那么这个文件相对会比较复杂&…

【嵌入式环境下linux内核及驱动学习笔记-(16)linux总线、设备、驱动模型之input框架】

目录 1、Linux内核输入子系统概念导入1.1 输入设备工作机制1.2 运行框架1.3 分层思想 2、驱动开发步骤2.1 在init()或probe()函数中2.2 在exit()或remove()函数中:2.3 上报事件2.4 input驱动要素导图2.5 input驱动的总…

代码生成器实现

代码生成器实现 实现封装元数据的工具类实现代码生成器的代码编写掌握模板创建的 构造数据模型 需求分析 借助Freemarker机制可以方便的根据模板生成文件,同时也是组成代码生成器的核心部分。对于Freemarker而 言,其强调 数据模型 模板 文件 的思…

chatgpt赋能python:Python与硬件结合的现实价值

Python与硬件结合的现实价值 Python是当今最受欢迎和广泛使用的编程语言之一,因其易学易用、开放源代码和灵活性而备受欢迎。但是当我们将它与硬件相结合,它能做到什么? 在这篇文章中,我们将向您介绍如何将Python与硬件结合&…

戴尔外星人m16r1国行中文原厂Windows11系统自带Support Assist OS Recovery恢复出厂设置

戴尔外星人m16r1国行中文原厂系统自带Support Assist OS Recovery恢复出厂设置 文件地址https://pan.baidu.com/s/1Pq09oDzmFI6hXVdf8Vqjqw?pwd3fs8 提取码:3fs8 支持Support Assist OS recovery型号: 戴尔外星人m18r1国行中文版Windows11系统 戴尔外星人x16r1国行中文版…

2023/6/9总结

CSS Less嵌套 子元素的选择器可以直接写在父元素里面。 如果不是它的后代元素,比如你想写伪类选择器、交集选择器,需要在前面加&号。 Less运算: 加减乘除都可以,运算符必须用空格隔开。如果俩个元素都有单位&#xff0…

【SpringBoot 3.x】使用starter整合Druid

Druid介绍 Druid是阿里巴巴的一个开源项目,号称为监控而生的数据库连接池,在功能、性能、扩展性方面都超过其他例如DBCP、C3P0、BoneCP、Proxool、JBoss DataSource等连接池,而且Druid已经在阿里巴巴部署了超过600个应用,通过了极为严格的考…

网络作业9【计算机网络】

网络作业9【计算机网络】 前言推荐网络作业9一. 单选题(共12题,36分)二. 多选题(共1题,3分)三. 填空题(共2题,10分)四. 阅读理解(共1题,17分&…

C++【STL】之string的使用

STL简介 STL是C标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。STL由六大组件构成:仿函数、算法、迭代器、空间配置器、容器和配接器。 其中各种容器可以很大帮助的提升我们编写程序的效率&#…

静态NAT配置与验证实验

静态NAT配置与验证实验 【实验目的】 部署静态NAT。熟悉静态NAT的应用方法。验证配置。 【实验拓扑】 实验拓扑如图所示。 实验拓扑 设备参数如表所示。 设备参数表 设备 接口 IP地址 子网掩码 默认网关 R1 f0/0 192.168.10.1 255.255.255.0 N/A S1/0 10.0.0.1…

GlyphControl: Glyph Conditional Control for Visual Text Generation

GlyphControl: Glyph Conditional Control for Visual Text Generation (Paper reading) Yukang Yang, Microsoft Research Asia, arXiv2023, Cited: 0, Code, Paper 1. 前言 最近,人们对开发基于扩散的文本到图像生成模型的兴趣日益增长,这些模型能够…

软件工程开发文档写作教程(11)—需求分析书的编写

本文原创作者:谷哥的小弟作者博客地址:http://blog.csdn.net/lfdfhl本文参考资料:电子工业出版社《软件文档写作教程》 马平,黄冬梅编著 需求分析书主要内容 按照国家《软件需求说明书GB8567-88》所定义的标准,软件需求…

2023去水印小程序saas系统源码修复独立版v1.0.3+uniapp前端

🎈 限时活动领体验会员:可下载程序网创项目短视频素材 🎈 🎉 有需要的朋友记得关赞评,阅读文章底部来交流!!! 🎉 ✨ 源码介绍 一个基于uniapp写的小程序,后端…

MATLAB | 绘图复刻(九) | 泰勒图及组合泰勒图

有粉丝问我这个图咋画: 我一看,这不就泰勒图嘛,就fileexchange上搜了一下泰勒图绘制代码,但是有的代码比较新的版本运行要改很多地方,有的代码需要包含一些压缩包没并没有的别人写的函数,于是我干脆自己写了…

JAVA-八种基础数据类型和包装类型及相关面试题

文章目录 前言一、基本数据类型1.1 分类1.2 概念1.3 代码1.4 二维表 二、各基本数据类型间强制转换2.1 为什么Java中有强制转换?2.2 示例代码 三、包装类型3.1 为什么有包装类型?3.2 基本概念3.3 转换方法 四、转换过程中使用的自动装箱和自动拆箱4.1 来…

Redis Lua脚本原理

Lua脚本执行过程 创建并修改Lua环境 1 创建基础Lua环境2 载入函数库3 创建全局表格Lua4 替换随机函数5 创建排序辅助函数6 创建redis.pcall函数7 全局环境保护8 修改后的Lua环境保存到服务器状态的Lua属性,等待脚本执行 Redis中带有不确定性的命令: …

RK3588平台开发系列讲解(以太网篇)PHY状态机

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、PHY状态机定义二、PHY的状态变化三、PHY的状态变化打印沉淀、分享、成长,让自己和他人都能有所收获!😄 一、PHY状态机定义 phy状态机: 目录:include/linux/phy.h enum phy_state {PHY_DOWN = 0,</