黑马JVM总结(二十九)

(1)语法糖-重写桥接

(2)语法糖-匿名内部类

(3)类加载-加载

类加载可以分为3个阶段,加载、连接、初始化

我们知道java类编译成字节码以后,运行呢需要类加载器把类的字节码加载到方法区中

类被加载到方法区,这里用的jdk1.8方法区的实现叫做元空间,类的字节码都会被加载到元空间中,加载的同时在java的堆内存中生成一个java_mirror的镜像,他持有instanceKlass的指针地址 ,当new的对象,通过对象的对象头找到(java_mirror)Person.class类对象,在通过类对象区元空间找到instanceKlass,然后可以到元空间里找对应的方法

(4)类加载-连接-验证

(5)类加载-连接-准备

静态变量早期存储在方法区里,从jdk1.7开始跟类对象存储在堆中了

多出来个static,就是前面提到cinit类的构造,进行赋值,赋值动作在类的构造方法中,没有在准备阶段

相关推荐
名字还没想好☜7 小时前
Java 线上内存泄漏排查实战:jmap 导堆、MAT 找 GC Roots 与四类常见泄漏
java·开发语言·jvm·内存泄漏
淡海水14 小时前
01-07-运行时-GC深度剖析-内存分配回收与结构选择
jvm·windows·unity·gc
2602_9599609217 小时前
电商大厂Java面试:从Spring Boot、JPA、微服务到Redis、Kafka、Spring Security与监控,谢飞机的爆笑三轮问答
java·jvm·spring boot·redis·面试题
一水18 小时前
AI 时代审查思维:审查第一篇
java·jvm·数据库·spring
それども1 天前
JVM MetaspaceSize 参数作用
jvm
java_upp1 天前
JVM内存溢出和内存泄漏的区别及排查方法
jvm·内存泄漏·内存溢出
城管不管2 天前
MySQL 慢查询完整排查
java·服务器·jvm·数据库·mysql·spring·面试
mister_guo2 天前
JVM 内存管理原理及生产配置实战:从“参数能启动”到“内存可控”
java·jvm
名字还没想好☜3 天前
Go 的 strings.Builder 实战:拼接性能、Grow 预分配与何时该用 bytes.Buffer
java·jvm·后端·golang·go
wear工程师4 天前
Java 类初始化到底何时触发?别把加载、连接和 static 执行混在一起
java·jvm