jvm个人总结(照着书来的,第二版)
文章平均质量分 78
jvm的个人总结,因为只看书有点不懂,所以想自己总结总结或者按照书上的写下来,增强自己的记忆力
布诺CS
这个作者很懒,什么都没留下…
展开
-
jvm内存区域的划分以及运行时对象存储位置
jvm内存区域的划分以及运行时对象存储位置程序计数器虚拟机栈本地方法栈堆方法区运行时常量池直接内存jvm的内存区域分为程序计数器、本地方法栈、虚拟机栈、堆、方法区程序计数器当字节码解释器在工作的时候,就是通过改变程序计数器的值来选取下一条要执行的代码,例如分支、循环、跳转、异常处理都是通过程序计数器的值的变更来实现的,当执行的方法为Native方法时程序计数器为空(Undefined)。由于Java的多线程是通过线程轮流切换并分配处理器时间来实现的,所以在任意一个确定的时刻,一个处理器都只会执行一个线原创 2021-01-28 18:55:27 · 827 阅读 · 0 评论 -
类的加载时机
类的加载时机chushihua到卸载出内存,一共需要经历加载、验证、准备、解析、初始化、使用、卸载七个阶段,其中验证、准备、解析统称为连接,连接是全程由虚拟机进行控制的,步骤如下加载、验证、准备、初始化、卸载这五个阶段的时间是确定的,解析则有可能在某些特定的环境之下在初始化之后开始。这些阶段是按部就班的开始而不是进行或者完成,因为这些步骤通常是由一个步骤调用了其他步骤。加载的时间虚拟机并未强制指定,但是在初始化阶段,规定了五种情况必须立即进行初始化,进行初始化之前加载、验证、准备、是已经完成的。(1原创 2021-01-28 15:35:20 · 258 阅读 · 0 评论 -
jvm加载类的加载过程详解
类的加载过程详解加载加载时类加载的一个阶段,不是类加载。首先是通过全限定类名获取定义这个类的二进制字节流。将这个字节流中所代表的静态存储结构转换为方法区的运行时数据结构,也就是将静态资源放置在方法的运行时常量池中。再内存中生成一个这个类的class对象,作为方法区中这个类的各种数据访问入口。//数组和非数组对象的加载略有不同,稍后补充验证首先要进行的是文件格式验证,验证是否能够被虚拟机处理解析:(1) 是否是以魔数0xCAFEBABE开头。(魔数:每个class文件的头四个字母,作用原创 2021-01-26 22:25:06 · 273 阅读 · 0 评论