JVM的几种GC
GC
JVM在进行GC时,并不是对这三个区域统一回收。大部分时候,回收都是新生代~
新生代GC(minor GC):
指发生在新生代的垃圾回收动作,因为Java对象大多都具备朝生夕灭的特点,所以minor GC发生得非常频繁,一般回收速度也比较块。
老年代GC(Major GC/Full GC):
指发生在老年代的GC,它的速度会比minor GC慢很多。
GC两种类:轻GC(普通的GC),重GC(全局GC)
引用计数法
针对堆中的对象,给每一个对象分配一个计数器(计数器本身有消耗),当对象被使用一次计数器就+1,被使用次数为0的对象就被删除掉了

复制算法
为什么幸存0区、幸存1区的位置始终在交替轮换,这就是复制算法在驱动(因为动态地缘故,在幸存区分区中,相对空的一区叫做“To区”,相对满的一区叫做“From区”)
伊甸园区GC过后还存在的对象进入到幸存区。下一次GC,在幸存区中,垃圾会有一个“向空区转移”的趋势,垃圾会被分到相对干净的一个分区中,并且之前的存在于其他分区的垃圾也会进入该分区。达到一个“清空幸存区部分分区”的效果,从而就驱使了幸存区中分区的动态轮换。实现的过程就是复制算法的体现,即原先存在垃圾的分区复制到了空的分区,从而让本身变成了空的分区(From -To empty),动态往复…

好处:没有内存的碎片~
坏处:浪费了内存空间~:多了一半空间永远是空to。假设对象100%存活(极端情况)
复制算法最佳使用场景:对象存活度较低的时候;新生区~
标记-清除-压缩算法
扫描对象,对存活的对象进行标记,清除没有标记的对象(标记-清除算法),为了减少内存碎片的产生,在(标记-清除算法)的基础上进行内存空间压缩,这被称之为(标记-压缩算法)

为了提高效率,减少压缩的次数,通常在几次GC过后进行一次压缩
优化没有尽头~
总结
内存效率:复制算法>标记清除算法>标记压缩算法(时间复杂度)
内存整齐度:复制算法=标记压缩算法>标记清除算法
压缩算法(时间复杂度)
内存整齐度:复制算法=标记压缩算法>标记清除算法
内存利用率:标记压缩算法=标记清除算法>复制算法
GC题目:
. JVM的内存模型和分区~详细到每个区放什么?
·堆里面的分区有哪些? Eden,form,to,老年区,说说他们的特点!
·GC的算法有哪些?标记清除法,标记压缩,复制算法,引用计数器,怎么用的?
·轻GC和重GC分别在什么时候发生?
相关文章:
JVM的几种GC
GC JVM在进行GC时,并不是对这三个区域统一回收。大部分时候,回收都是新生代~ 新生代GC(minor GC): 指发生在新生代的垃圾回收动作,因为Java对象大多都具备朝生夕灭的特点,所以minor GC发生得非…...
掌握Shell脚本的if语句,让你的代码更加精准和高效
前言 大家好,我是沐风晓月,本文首发于csdn, 作者: 我是沐风晓月。 文章收录于 我是沐风晓月csdn专栏 【系统架构实战】专栏中的【shell脚本入门到精通】专栏。 本专栏从零基础带你层层深入,学会shell脚本,不是梦。 &…...
音质好的蓝牙耳机有哪些?音质最好的蓝牙耳机排行
说起当代人外出必备是数码产品,蓝牙耳机肯定存在。不管是听歌还是追剧,蓝牙耳机在音质上的表现也是越来越好了。下面,我来给大家推荐几款音质好的蓝牙耳机,一起来看看吧。 一、南卡小音舱蓝牙耳机 参考价:259 蓝牙版…...
一次Android App NDK崩溃问题的分析及解决
文章目录小结NDK崩溃的问题通过logcat查看崩溃日志提取tombstone的记录通过ndk-stack来输出日志取得的日志分析并解决分析使用add2line定位具体报错的行数解决参考小结 最近碰一次Android App NDK崩溃的问题,这个NE(Native Exception)是从ND…...
因果图判定表法
因果图&判定表法 在了解了等价类和边界值比较适宜搭档的测试用例方法之后 接下来我们来了解另外一队就是因果图和判定表 因果图会产生判定表法 因果图法 等价类划分法和边界值分析方法都是着重考虑输入条件而不考虑输入条件的各种组合、输入条件之间的相互制约关系。例…...
Oracle 数据库相关信息清单列表
Oracle 数据库相关信息清单列表 一、设置Oracle安装目录 Oracle基目录(ORACLE_BASE):D:\databases\oracle\oracle_11g\app\Administrator 软件位置(ORACLE_HOME):D:\databases\oracle\oracle_11g\app\Administrator\product\11.2.0\dbhome_1 数据库文件位置:D:\databa…...
射频资料搜集--推荐几个网站和链接
https://picture.iczhiku.com/resource/eetop/wHKYFQlDTRRShCcc.pdfhttps://picture.iczhiku.com/resource/eetop/wHKYFQlDTRRShCcc.pdfVCO pulling的资料 模拟滤波器与电路设计手册 - 射频微波仿真 - RF技术社区 Practical RF Amplifier Design Using the Available Gain Pr…...
B1048 数字加密
decription 本题要求实现一种数字加密方法。首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对 13 取余——这里用 J 代表 10、Q 代表 11、K 代表 …...
Qt使用FFmpeg播放视频
一、使用场景 因为项目中需要加载MP4播放开机视频,而我们的设备所使用的架构为arm架构,其中缺乏一些多媒体库。安装这些插件库比较麻烦,所以最终决定使用FFmpeg播放视频。 二、下载编译ffmpeg库 2.1 下载源码 源码下载路径:http…...
Win32 ListBox控件
Win32 ListBox控件 创建ListBox控件 创建窗口函数 HWND CrateWindowEx(DWORD dwExStyle , // 窗口的扩展风格,基本没用LPCTSTR lpClassName, // 已经注册的窗口类名称LPCTSTR lpWindowName, // 窗口标题栏的名字DWORD dwStyle, // 窗口的基本风格int x, // 左上角水平坐标int …...
最大值池化与均值池化比较分析
1 问题在深度学习的卷积网络过程中,神经网络有卷积层,池化层,全连接层。而池化层有最大值池化和均值池化两种情况,而我们组就在思考,最大值池化和均值池化有什么区别呢?两者的模型准确率是否有所不同&#…...
统计学 多元线性回归
文章目录统计学 多元线性回归多元线性回归模型拟合优度显著性检验线性关系检验回归系数检验多重共线性及其处理多重共线性的问题多重共线性的识别与处理变量选择利用回归方程进行预测哑变量回归统计学 多元线性回归 多元线性回归模型 多元线性回归模型:设因变量为…...
tar和gzip压缩和解压
打包和压缩的区别:打包:将多文件 封装在一起压缩:将多文件 封装在一起 通过特定的算法 将冗余的数据 进行删除tar默认是打包命令,如果想用tar进行压缩 必须加选项1、gzip格式压缩:tar zcvf 压缩包包名 文件1 文件2 文件…...
搭建Docker企业私有仓库
什么是仓库 仓库(Repository)是存储和分发 Docker 镜像的地方。镜像仓库类似于代码仓库,Docker Hub 的命名来自 GitHub,Github 是我们常用的代码存储和分发的地方。同样 Docker Hub 是用来提供 Docker 镜像存储和分发的地方。 谈…...
[NOIP2009 提高组] 最优贸易(C++,tarjan,topo,DP)
题目描述 $C 国有国有国有 n 个大城市和个大城市和个大城市和 m$ 条道路,每条道路连接这 nnn个城市中的某两个城市。任意两个城市之间最多只有一条道路直接相连。这 mmm 条道路中有一部分为单向通行的道路,一部分为双向通行的道路,双向通行的…...
计算机网络:移动IP
移动IP相关概念 移动IP技术是移动结点(计算机/服务器)以固体的网络IP地址,实现跨越不同网段的漫游功能,并保证了基于网络IP的网络权限在漫游中不发生任何改变。移动结点:具有永久IP地址的设备。归属代理(本…...
binutils工具集——GNU binutils工具集简介
以下内容源于网络资源的学习与整理,如有侵权请告知删除。 GNU binutils是一个二进制工具集,主要包括: ld,GNU链接器。as,GNU汇编器。addr2line,把地址转化为文件名和行号。nm,列出目标文件的符…...
Golang编译选项(ldflags)有趣应用
本文介绍如何在构建时使用ldflags选项给Golang应用程序注入变量,用于给Go可执行文件增加版本标识或GIT提交摘要等信息。 应用程序的版本信息 我们首先查看Docker Cli 包含的提交信息: docker version 返回结果: Server: Docker Engine - Co…...
AIR32F103(十一) 在AIR32F103上移植微雪墨水屏驱动
目录 AIR32F103(一) 合宙AIR32F103CBT6开发板上手报告AIR32F103(二) Linux环境和LibOpenCM3项目模板AIR32F103(三) Linux环境基于标准外设库的项目模板AIR32F103(四) 27倍频216MHz,CoreMark跑分测试AIR32F103(五) FreeRTOSv202112核心库的集成和示例代码AIR32F103(六) ADC,I2S…...
Uipath Excel 自动化基础系列文章
Uipath Excel 自动化基础系列文章已发布到CSDN,网址:https://blog.csdn.net/Marshaljun?typeblog (3月份会在CSDN博客发布Uipath Excel 实战课程及经验分享) Uipath Studio流程设计器介绍 https://blog.csdn.net/Marshaljun/article/details/128699022 Uipath St…...
别再傻傻用软件SPI了!STM32F407驱动ST7789屏,用HAL库+DMA2_Stream3实现丝滑刷屏
STM32F407硬件SPIDMA驱动ST7789屏幕的极致性能优化实战 如果你正在使用STM32F407驱动ST7789屏幕,并且对刷新率不满意,这篇文章将带你从"能用"到"高效"的蜕变。我们将深入探讨三种驱动方案的性能差异,并重点解析如何通过D…...
Spigot服务器搭建后,别忘了做这5件事:优化、备份、插件与安全基础设置
Spigot服务器搭建后必做的5项关键优化与安全设置 当你第一次看到Spigot服务器成功启动时,那种成就感确实令人兴奋。但很快你会发现,一个能运行的基础服务器和真正稳定、高效、安全的游戏环境之间,还有不小的距离。很多新手服主在这个阶段容易…...
Debian 12上彻底卸载TigerVNC的5个隐藏步骤(附残留文件清理技巧)
Debian 12上彻底卸载TigerVNC的5个隐藏步骤(附残留文件清理技巧) 作为Linux系统管理员,你是否遇到过TigerVNC卸载后仍然出现端口占用或配置冲突的情况?常规的apt remove往往无法彻底清除所有痕迹。本文将揭示那些鲜为人知的清理技…...
跨境服务数字化转型 JAVA 国际版打手俱乐部陪玩系统完整开发教程
以下是基于JAVA开发国际版打手俱乐部陪玩系统的完整开发教程,涵盖技术选型、核心功能实现、安全合规及部署方案:一、技术选型与架构设计后端框架:Spring Boot 3.2 Spring Cloud Alibaba:提供微服务拆分能力,支持Nacos…...
Qwen3-ASR-1.7B保姆级教程:解决‘识别结果不准确’的5类高频问题
Qwen3-ASR-1.7B保姆级教程:解决‘识别结果不准确’的5类高频问题 1. 引言:为什么你的语音识别总是不准? 你是不是遇到过这样的情况:用语音识别软件录音,结果出来的文字乱七八糟,完全不是你说的内容&#…...
符号回归的工程化实践:基于深度学习的物理定律自动发现与工业部署
1. 符号回归:当深度学习遇见物理定律发现 第一次接触符号回归时,我被它的"反套路"特性惊艳到了——大多数深度学习模型都在努力变得更复杂,而它却在追求用最简单的数学公式解释世界。三年前我在化工厂做反应釜监控项目时࿰…...
合肥高中英语一对一辅导2026指南,突破听说读写全面提升路径
合肥高中英语一对一辅导2026指南,突破听说读写全面提升路径据《2026年中国基础教育课外辅导行业白皮书》数据显示,2026年高中阶段英语学科辅导需求同比增长23%,其中超过65%的学生家长明确表示,传统大班教学已无法满足孩子个性化提…...
Cross-Modal Prototype Alignment and Mixing for Training-Free Few-Shot Classification
Cross-Modal Prototype Alignment and Mixing for Training-Free Few-Shot Classification Authors: Dipam Goswami, Simone Magistri, Gido M. van de Ven, Bartłomiej Twardowski, Andrew D. Bagdanov, Tinne Tuytelaars, Joost van de Weijer Deep-Dive Summary: 跨模态…...
AI原生推荐:如何实现端到端的训练?
AI原生推荐:如何实现端到端的训练?关键词:AI原生推荐、端到端训练、深度学习推荐系统、推荐模型架构、多模态融合摘要:本文将从“AI原生推荐”的核心需求出发,用“快递物流”“餐厅点菜”等生活化类比,逐步…...
Keil5实战:手把手教你制作自定义FLM插件(附完整驱动配置)
Keil5实战:手把手教你制作自定义FLM插件(附完整驱动配置) 在嵌入式开发领域,Flash编程算法(FLM)是连接开发环境与目标芯片闪存的重要桥梁。当我们需要支持非标准闪存芯片或特殊外设接口时,自定义…...
