当前位置:网站首页>爆肝整理JVM十大模块知识点总结,不信你还不懂
爆肝整理JVM十大模块知识点总结,不信你还不懂
2022-07-28 13:34:00 【InfoQ】
01 JVM 内存结构
- 程序计数器
- Java 虚拟机栈
- 本地方法栈
- 堆
- 方法区

1.1 程序计数器(PC 寄存器)
- 字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制。
- 在多线程情况下,程序计数器记录的是当前线程执行的位置,从而当线程切换回 来时,就知道上次线程执行到哪了。
- 线程私有,每条线程都有自己的程序计数器。
- 生命周期:随着线程的创建而创建,随着线程的结束而销毁。
- 是唯一一个不会出现 OutOfMemoryError 的内存区域。
1.2 Java 虚拟机栈(Java 栈)
- 局部变量表
- 操作数栈
- 动态链接
- 方法出口信息
- ......

- 局部变量表随着栈帧的创建而创建,它的大小在编译时确定,创建时只需分配事 先规定的大小即可。在方法运行过程中,局部变量表的大小不会发生改变。
- Java 虚拟机栈会出现两种异常:StackOverFlowError 和 OutOfMemoryError。
- StackOverFlowError 若 Java 虚拟机栈的大小不允许动态扩展,那么当线程请 求栈的深度超过当前 Java 虚拟机栈的最大深度时,抛出 StackOverFlowError 异常。

02 HotSpot 虚拟机对象探秘
2.1 对象的内存布局 在 HotSpot 虚拟机中,对象的内存布局分为以下 3 块区域:
- 对象头(Header)
- 实例数据(Instance Data)
- 对齐填充(Padding)

- 哈希码
- GC 分代年龄
- 锁状态标志
- 线程持有的锁
- 偏向线程 ID
- 偏向时间戳

03 垃圾收集策略与算法
3.1 判定对象是否存活
- Java 虚拟机栈(栈帧中的本地变量表)中引用的对象
- 本地方法栈中引用的对象
- 方法区中常量引用的对象
- 方法区中类静态属性引用的对象

04 HotSpot 垃圾收集器
4.1 新生代垃圾收集器



05 内存分配与回收策略

06 JVM 性能调优
- 通过 64 位 JDK 来使用大内存;
- 使用若干个 32 位虚拟机建立逻辑集群来利用硬件资源。

07 类文件结构

08 类加载的时机

09 类加载的过程

10 类加载器
10.1 类与类加载器

边栏推荐
- 7.27 simulation summary
- C# 读取ini文件、键值对操作
- Super resolution reconstruction based on deep learning
- Three methods to disassemble the rotation array
- (function(global,factory){
- MVC model: calendar system
- Metersphere -- Open Source continuous testing platform
- [leetcode] 1331. Array sequence number conversion
- QT自制软键盘 最完美、最简单、跟自带虚拟键盘一样
- 每日一题——奖学金
猜你喜欢

Install mysql5.7.36 in CentOS

Discrete logarithm problem (DLP) & Diffie Hellman problem (DHP)

用友BIP CRM新品发布,赋能大中型企业营销增长

Mobile phone scrolling screenshot software recommendation

QT self-made soft keyboard is the most perfect and simple, just like its own virtual keyboard

这3款在线PS工具,得试试

Foundation of deep learning ---- GNN spectral domain and airspace (continuous improvement, update and accumulation)

These three online PS tools should be tried
![[lvgl events] Application of events on different components (I)](/img/a8/7c24e68f3506bbef3c2e922729471c.png)
[lvgl events] Application of events on different components (I)

QQ robot configuration record based on nonebot2
随机推荐
pix2pix
Why is it reverse to convert from other formats to BMP
HCIP第十一天
[try to hack] hfish honeypot deployment
【LeetCode】1331. 数组序号转换
树莓派基础 | 总结记录树莓派学习过程中的一些操作
指针和数组(7)
zabbix分布式
[server data recovery] HP StorageWorks series server RAID5 offline data recovery of two disks
利用反射构建一棵菜单生成树
牛客多校-Link with Level Edito I-(线性dp)
Detailed explanation of C language student achievement management system [easy to understand]
7.27模拟赛总结
How did Dongguan Huawei cloud data center become a new model of green data center?
Detailed explanation of common commands of vim (VIM use tutorial)
Career planning of Software Test Engineer
如何有效进行回顾会议(上)?
Daily question - Scholarship
2022年熔化焊接与热切割考题及在线模拟考试
2022年熔化焊接与热切割考题及在线模拟考试