【jvm我能讲两小时015】类加载器连接的准备阶段做了什么?
2023-09-27 14:29:28 时间
类加载器连接的准备阶段做了什么?
准备阶段是正式为类中定义的变量(静态变量,被static修饰的变量),分配内存并设置初始值的过程
这些变量使用的空间应当在方法区中进行分配,在jdk1.7及之前,hotspot使用永久代来实现方法区,在jdk1.8之后,类变量会随着class对象一起存放在堆中.
准备阶段进行内存分配的只有类变量 不包含实例变量,实例变量需要在对象实例化后在堆中分配,通常情况下,初始值一般为零值.
public static int value=123;
准备阶段初始值是0不是123,因为在此时还没执行任务java方法,而把value赋值为123是在putstatic指令是程序被编译后,存放在类构造器的clinit方法中,赋值为123在类的初始化阶段
上面说的通常情况是初始值为零值,特殊情况下直接赋予ConstantValue属性值.比如final static String
相关文章
- java虚拟机学习-JVM调优总结-调优方法(12)
- windows下如何正确使用Jconsole远程连接linux主机上的JVM
- 康师傅JVM:对象的实例化内存布局与访问定位(十)
- (Java实习生)每日10道面试题打卡——JVM篇 (三)
- Error: could not open `C:Program FilesJavajre6libi386jvm.cfg')
- 为什么 JVM 不用 JIT 全程编译?
- 解决JVM最大内存设置问题
- 小师妹学JVM之:GC的垃圾回收算法
- 面试突击(六)——JVM如何实现JAVA代码一次编写到处运行的?
- 海子-JVM的内存区域划分
- 深入理解java虚拟机(十四)正确利用 JVM 的方法内联
- 一步步优化JVM一:概述、方法及需求
- jinfo_动态调整JVM参数(无需重启)(实践)
- JVM垃圾收集器组合--各种组合对应的虚拟机参数实践
- JVM优化-JVM参数配置