java虚拟机
文章平均质量分 78
小明是个程序猿
作为一名it小白,希望能和更多资深的大牛学习,也希望自己能够分享自己的文章,给更多同行带来帮助,同时也爱健身,爱音乐
展开
-
浅谈Java虚拟机运行时数据区域
运行时数据区域 程序计数器 程序计数器是一块较小的内存空间,可以看做是当前线程执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令。(线程私有)每条线程都需要有一个独立的程序计数器,各条线程之间计数器互不影响,独立存储。 java虚拟机栈...原创 2018-08-06 10:20:31 · 158 阅读 · 0 评论 -
JVM对象以及内存溢出异常
HotSpot虚拟机对象探秘 对象的创建 虚拟机遇到new指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,检查这个符号引用代表的类是否被加载,解析和初始化。 类加载通过后,虚拟机将为对象分配内存。对象所需内存的大小在类加载完成后便可完全确定。(假设Java堆中内存是绝对规整的,使用“指针碰撞”方法,如果不是规则的,就使用“空闲列表”分配方式) 指针碰撞:所有用过的内...原创 2018-08-07 17:33:27 · 342 阅读 · 0 评论 -
jvm之垃圾收集器与内存分配
对象已死吗 引用计数算法 给对象添加一个医用计数器,每当有一个地方引用它时,计数器就加1 ;当引用失效时,计数器值就减1。虚拟机并不是通过引用计数算法来判断对象是否存活的。 可达性算法 通过一系列的“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所经过的路径成为引用链,当一个对象到GC Roots没有任何引用链相连时,则证明对象是不可用的。 Java语言中,可作为G...原创 2018-08-07 17:40:13 · 188 阅读 · 0 评论 -
jvm之详解class类文件的结构
Class文件是一组以8位字节为基础单位的二进制流。各个数据项严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分割符。 Class文件结构采用类似C语言的结构来存储数据的,主要有两类数据项,无符号数和表。 Class文件中按照严格 的顺序排列的字节流包含的数据: ClassFile{ u4 magic; u2 minor_version; u2 major_versi...原创 2018-08-08 18:05:35 · 1601 阅读 · 1 评论