image.png
image.png
image.png
image.png
image.png
image.png
image.png
为什么需要双亲委派模型
- 避免重复加载
- 安全
- 重写父类的loadClass方法来打破
查看class bytecode文件
- jclasslib
程序计数器
image.png
image.png
image.png
stack && heap
image.png
查看java进程的内存映像
- jmap heap pid
image.png
jvm 内存评估和设置
image.png
image.png
jvisualvm
- 查看方法区的类
方法区
image.png
class constant pool (class常量池)
-
Jdk1.8及之后: 无永久代,运行时常量池在元空间,字符串常量池里依然在堆里
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
- class常量池
java文件被编译成class文件之后,会在class文件中生成我们所说的class常量池,class文件中除了包含类的版本、字段、方法、接口等描述信息外,还有一项信息就是常量池(constant pool table)
- 运行时常量池
当类加载到内存中后,jvm就会将class常量池中的内容存放到运行时常量池中
jol
- 查看对象
object layout
image.png
image.png
image.png
image.png
- 内存对齐为了提高cpu性能
image.png
-
markword
image.png
image.png
image.png
image.png
image.png
image.png
image.png
偏向锁 升级 轻量级锁 升级 重量级锁
image.png
image.png
image.png












网友评论