
jvm学习记录
记录下自己学习jvm
pro d
这个作者很懒,什么都没留下…
展开
-
jvm的堆内存
永久代、元空间、方法区方法区是jvm的一种规范。每种jvm都会实现方法区,方法区包括class类文件信息+运行时常量池,在jdk8以前,方法区是通过永久代来实现,在jdk8及以后,采用元空间来实现方法区。元空间和永久代的不同:大部分元空间数据是在本地内存中,大部分永久代数据则是在堆中。有几种常量池?1、类文件中的常量池2、字符串常量池(jdk8及以后在堆中)3、运行时常量池(class类对象的相关信息,jdk8及以后在元空间中)理解:类加载时常量全在类文件,加载进jvm中,字符串常量池原创 2022-03-25 16:33:16 · 464 阅读 · 0 评论 -
类文件结构
class文件结构常量池常量池包括:字面量和符号引用如字面量有final 修饰的a、 “1”、“2”接口这个类实现了几个接口字段这个类中有几个属性。类变量也属于字段,这里只定义了一个a。方法 类构造器方法这里没有类初始化的方法,因为没有类变量...原创 2022-03-24 22:02:39 · 346 阅读 · 0 评论 -
jvm内存区域之虚拟机栈、pc计数器、本地方法栈
1、pc计数器程序计数器的作用是什么?字节码解释器通过改变程序计数器中存储的下一条字节码指令地址以此来达到流程控制Java多线程的线程会切换,为了保存线程切换前的正确执行位置,每个线程都应该有程序计数器,因此程序计数器是线程私有的 (私有是因为线程的数据结构维护了一个关于pc计数器的字段?所以私有?)...原创 2022-03-20 21:46:58 · 977 阅读 · 0 评论 -
类加载机制之类的初始化
1、类的初始化就像我们在代码中构造对象一样,需要调用类的构造方法。类的初始化也要执行()方法。此方法中包括此类的静态语句块和类变量赋值语句,类变量要赋值才行。如果一个只有类变量但是没有赋值也没有静态语句块,就可能不会有()方法(理解:赋值都没有,语句都没有,还要初始化干嘛)2、子类和父类的初始化和对象一样,子类初始化之前子类的父类必须完成初始化,即执行方法。接口初始化:理解:接口有方法有变量,所以也能初始化。子类接口初始化不需要父类先完成初始化。(不懂就这样记)3、每个类只能被加载一次,所以jv.原创 2022-03-19 19:32:20 · 384 阅读 · 0 评论 -
类加载机制之连接
jvm初级学习原创 2022-03-18 22:02:50 · 553 阅读 · 0 评论 -
1、类加载机制之加载
类的加载是jvm虚拟机的开始,类的加载有几个阶段:1、加载过程原创 2022-03-12 12:23:35 · 123 阅读 · 0 评论