面试八股——JVM★

类加载

类加载器的定义

类加载器的类别

类装载的执行过程

类的装载过程:

加载:

验证:

准备:

这里设置初始值并不是传统意义的设置初始值(那个过程在初始化阶段)。

解析:

初始化:

使用:

类的回收(被垃圾器回收)

回收时机

垃圾定位——可达性分析法

可作为GC root的对象:

垃圾回收算法
标记清除算法

标记整理算法

先将存活对象移动到一起,然后清楚边界之外的垃圾。

优点:解决了内存碎片化问题。缺点:效率低。

复制算法 

开辟了一块新的内存空间,将存活对象按序复制过去,然后直接清空原来的内存空间。

优点:克服内存碎片化问题+效率较高。

缺点:需要两块内存空间,内存使用率低。

分代回收
回收过程

java8开始,堆空间被分为了新生代与老年代。

新创建的对象都要被存在Eden区:

GC种类

小结

垃圾回收器的类型
串行垃圾回收器

创建一个垃圾回收线程串行回收垃圾。

并行垃圾回收器(JDK8默认)

创建多个垃圾回收线程进行垃圾回收。

CMS(并发垃圾回收器)

G1垃圾回收器(JDK9之后默认,使用复制算法)

新生代的回收

并发标记阶段

混合收集阶段

其不仅会回收部分老年区,还回去回收其他的区,只要其回收价值够高。(左图为回收前,右图为回收后,将回收的区域集体复制到某些区域后,清楚待收集的地区。)

结束之后,开启新的新生代回收、并发标记、混合收集的循环阶段。

回收失败

如果上述回收方法赶不上对象新建方法,则会采用FULL GC(回收所有区域的垃圾)回收

强、软、弱、虚引用的回收

小结

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

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

相关文章

序列化结构(protobuf)实现一个TCP服务器(C++)

Protocol Buffers(protobuf)是一种由Google开发的用于序列化结构化数据的方法,通常用于在不同应用程序之间进行数据交换或存储数据。它是一种语言无关、平台无关、可扩展的机制,可以用于各种编程语言和环境中。 1、首先建立proto文…

Linux服务器下安装Oracle数据库

Linux服务器下安装Oracle数据库详细说明文档:https://gitee.com/WilliamWangmy/snail-knowledge/blob/master/Oracle/Linux%E4%B8%8B%E5%AE%89%E8%A3%85Oracle.md ps:如果觉得作者写的还行,能够满足您的需求,请给作者的开源项目st…

白杨SEO:把AI结合SEO优化的工具有哪些?我常用的AIGC工具分享

前言:这是白杨SEO原创第523篇。为什么想到写这个?因为有好几个朋友问我做SEO主要用哪个AI工具来创作?所以就分享一下我用的工具,希望对大家有一点点帮助,需要的可以收藏。图片在公众号白杨SEO上去看。 声明&#xff1…

k8s中修复mongodb启动失败

背景 同事反馈 dev环境的yapi不能登录,看了一下是同事两年前用helm搭建的。单副本使用。 排查发现是后端数据库mongodb数据库挂掉。 rootdev-k8s-master03:~# kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE mo…

湘潭大学-编译原理-实验一+实验二

了解了DFA的化简的含义,按照笔者的理解,表示的意思是把集合不断进行划分,直到不可以再进行划分,划分的依据是当前的符号到下一个符号,到达的这些下一个符号,是否属于同一个集合,假设属于同一个集…

李廉洋;4.12现货黄金,美原油最新走势分析及策略。

现货黄金在美盘末将历史新高刷至2377美元/盎司。美国3月份PPI指数较上年同期上升2.1%,为11个月来的最高增幅,这份数据加之此前火爆的CPI指数,为美联储实现2%目标所面临的坎坷之路奠定了基础。不过,PPI报告中的细节让担心通胀再度加…

全面支持工业协议钡铼IOy系列模块无缝融入PLC及工业物联网架构

钡铼IOy系列模块作为工业控制领域的创新产品,以其卓越的性能和广泛的适用性,无缝融入PLC(可编程逻辑控制器)及工业物联网架构,为工业自动化领域带来了全新的可能性。下面我们将详细探讨钡铼IOy系列模块与PLC及工业物联…

图像分割:Pytorch实现UNet++进行医学细胞分割

图像分割:Pytorch实现UNet进行医学细胞分割 前言相关介绍项目结构具体步骤准备数据集读取数据集设置并解析相关参数定义网络模型定义损失函数定义优化器训练验证 参考 前言 由于本人水平有限,难免出现错漏,敬请批评改正。更多精彩内容&#x…

【Golang学习笔记】从零开始搭建一个Web框架(三)

文章目录 分组控制分组嵌套中间件 前情提示: 【Golang学习笔记】从零开始搭建一个Web框架(一)-CSDN博客 【Golang学习笔记】从零开始搭建一个Web框架(二)-CSDN博客 分组控制 分组控制(Group Control)是 Web 框架应提供…

【算法刷题 | 回溯思想 01】4.11(回溯算法理论、组合、组合总和 ||| )

文章目录 回溯1.回溯算法理论基础1.1什么是回溯法?1.2回溯法的效率1.3回溯法解决的问题1.4如何理解回溯法?1.5回溯法模板 2.组合2.1问题2.2解法一:暴力解法(循环次数不确定)2.3解法二:回溯2.3.1回溯思路&am…

Unity Shader之数学篇

一、坐标系 1、二维笛卡尔坐标系 屏幕坐标系是二维笛卡尔坐标系,OpenGL的屏幕坐标系原点在左下角,DirectX的屏幕坐标系原点在左上角。 2、三维笛卡尔坐标系 三维笛卡尔坐标系要区分是左手坐标系还是右手坐标系。 左手坐标系:举起你的左手…

linnux文件服务

1.FTP:文件传输协议。 基础:控制端口(身份验证) command 21/tcp 数据端口: data 20/tcp FTP Server默认配置:yum -y install vsftpd (安装vsftpd) touch /var/ftp/abc.txt(创建文件) systemctl start vsftpd(启动文件) systemctl …

Python零基础从小白打怪升级中~~~~~~~FastAPI和SQLAlchemy的整合

第六节:FastAPI和SQLALchemy的整合 一、ORM的查询操作 # 查找某个模型对应的那个表中所有的数据:all_person session.query(Person).all()# 使用filter_by来做条件查询all_person session.query(Person).filter_by(namemomo1).all()# 使用filter来做条…

【Go 快速入门】泛型 | 类型约束 | 泛型接口 | 通用数据结构

文章目录 泛型类型参数类型实例化类型约束类型集并集 & 交集 泛型接收者泛型方法泛型接口两种接口类型泛型接口 泛型实现通用数据结构数组链表数组队列 本节项目地址:06-GenericsQueue 泛型 如果你经常要分别为不同的类型写完全相同逻辑的代码,那么…

输了,腾讯golang一面凉了

本月正值4月,是金三银四的找工作的最佳时机。同时竞争也是很大,因为每年这个时候快要毕业的大学生也进去了找工作的潮水中。 今天分享我的一位大佬朋友CC,勇闯腾讯golang的面试经历。 这次面试问题的方向主要集中在计算机基础个网络方面。 下面是主要问到的问题。 第一个…

Word文档如何更改页面背景颜色?

在Microsoft Word中,设置页面颜色的方法有多种,以下为其中几种常用的方法:(为office2016版本操作) 方法一:使用主题颜色 1. 打开Word文档,在菜单栏中选择“设计”。 2. 在“设计”选项卡中&a…

泰山众筹:低门槛高回报的电商营销新模式

大家好,我是吴军,来自一家专注于软件开发的公司,担任产品经理一职。今天,我想与大家分享一种备受瞩目的商业模式——泰山众筹。 泰山众筹之所以能够在市场上迅速走红,其背后的原因值得我们深入探讨: 首先&…

【神经网络与深度学习】文本情感分类

数据准备 AclImdb – v1 Dataset 是用于二进制情绪分类的大型电影评论数据集,其涵盖比基准数据集更多的数据,其中有 25,000 条电影评论用于训练,25,000 条用于测试,还有其他未经标记的数据可供使用。 数据预处理和数据装载 imp…

idm线程越多越好吗 idm线程数多少合适

IDM(Internet Download Manager)是一款流行的下载管理软件,它支持多线程下载,这意味着它可以同时建立多个连接来下载文件的不同部分,从而提高下载速度。我们在使用IDM的时候总是有很多疑问,今天我们学习IDM…

游戏开发者必看:Perforce Helix Core 的功能特点及游戏开发中的常用工具、典型用例介绍

「不出海,即出局」随着全球化的加速发展,企业出海已成燎原之势。日前,2024 亚马逊云科技出海全球化论坛在深圳成功举办。龙智携手 Perforce 亮相游戏行业展区,展示了Perforce Helix Core如何与主流游戏开发引擎高效集成&#xff0…