一、 内存管理
1. 内存结构
方法区:
类加载的信息
运行时常量池:来源class文件中的常量池,动态设置常量的API
所有线程共享
PermSpace,MaxPermSpace
堆
存放对象实例
分代收集
Eden
from survior
to survior
old
所有线程共享
-Xmx,-Xms
虚拟机栈
线程执行java方法的调用栈,方法调用的嵌套,对应栈帧的入栈,出栈。
一个方法是一个栈帧。
一个栈帧
局部变量表
操作数栈
一个线程私有。
-Xss
本地方法栈
类似java方法,这里执行本地方法。
程序计数器
一个线程执行到字节码指令列表的哪条指令。
直接内存
执行引擎
本地方法库接口
本地方法库
2. 垃圾回收
如何确定对象是否为垃圾?引用计数算法,根搜索算法。
确定了对象是否为垃圾,然后怎么处理?
垃圾直接回收
非垃圾
标记清除算法
标记哪些是垃圾对象,直接回收,回收空间直接使用
标记复制算法
准备一个和原空间一样大的内存,将标记的删除,将非垃圾的copy到另一个空间去。
发现每次复制的很少,更新成第二版本
一个Eden占90%
两个survior占10%
一开始用一个Eden,一个survior,回收时,将非垃圾对象,copy到另一个survior上。
标记整理算法
将标记的垃圾对象回收,将非垃圾对象整理位置,挪到前面去,剩余空间连续。
分代收集算法*
年轻代用标记复制算法
老年代用标记整理算法
3. 内存监控工具
jps
jstat
jmap
jstack
二、执行引擎
1. class文件结构
2. 加载过程和类加载器
3. 执行引擎确定方法版本,执行方法内字节码,执行时内存结构
三、编译优化
1. 编译期优化
2. 运行期优化
四、并发执行
1. 多线程
2. 并发
相关推荐
jvm理解pdf
每个使用Java的开发者都知道Java字节码是在JRE中运行,而JVM则是JRE中的核心组成部分,承担分析和执行Java字节码的工作,而Java程序员通常并不需要深入了解JVM运行情况就可以开发出大型应用和类库。尽管如此,如果你...
jvm虚拟机深入讲解,理解jvm的核心原理,是学习jvm的原理的很好教科书
深入理解JVM.
深入理解JVM 深入理解JVM 深入理解JVM
JVM如何理解Java泛型类.doc JVM如何理解Java泛型类.doc
资源名称:深入理解JVM & G1 GC内容简介:G1 GC提出了不确定性Region,每个空闲Region不是为某个固定年代准备的,它是灵活的,需求驱动的,所以G1 GC代表了先进性。《深入理解JVM & G1 GC》主要为学习Java语言的...
JVM规范与深入理解,有JVM规范,有周志明的深入理解JVM。
分析常见的JVM调优技术及其相关条件,以及在实战中怎么使用到相关的技术进行调优,比较适合中高级开发进行学习,适合对JVM理解较深的开发学习
深入理解JVM,深入理解JVM一本可以帮助开发者深入了解jvm的经典书籍
深入理解jvm源码
深入理解JVM &G1; GC内部结构,年轻代,老年代,元空间等分布情况
深入jvm垃圾回收 调优细节。
圣思园张龙 深入理解jvm
JVM 完整深入解析.pdf
深入理解JVM内幕 从基本结构到Java 7新特性
文件总结了JVM的体系结构:四大块,类装载子系统(class loader subsystem),执行引擎子系统(Executionengine子系统),垃圾回收系统(gc),运行时数据区(JVM内存)。
JVM8全方位理解、实现linux下和window下对jar、idea、tomcat等应用程序的jvm的实战操作
Sun JVM原理与内存管理