1

上图
image.png
jvm内存模型,虚拟的描述java操作内存的一个模型。
java跨平台:jvm将每一条指令翻译成不同平台的机器码。

类加载机制

JVM讲class字节码文件加载到内存,经过校验、准备、解析和初始化之后,得到可以被虚拟机使用的对象。

线程共享,对象一般是分配在堆的。

线程栈,栈帧。存放局部变量、操作数栈、动态连接、方法出口。
对象可能会分配在栈、jvm会进行对象逃逸分析、这个时候对象就有可能分配在栈中。

本地方法栈

JNI(Java本地方法)

方法区(元空间)

存放一些常量、静态变量、类元信息

程序计数器

标记指令的执行位置。

直接内存(堆外内存)

jdk1.4之后引入直接内存,避免堆和native堆来回复制数据,能提高性能。

字节码执行引擎

执行指令

类装载子系统

装载类,类的加载是从main函数开始的,使用到的时候才加载。

对象

对象头
数据
对齐填充


李沁春
17 声望1 粉丝

喜欢运动,骑行、打羽毛球、打乒乓球等。也喜欢打桌游,玩狼人杀、剧本杀等烧脑游戏。


« 上一篇
JVM