JVM
Java虚拟机
朗里格儿浪
这个作者很懒,什么都没留下…
展开
-
JVM-对象存活算法和自救
JVM- 对象存活算法和自救1.引用计数算法2.可达性分析算法(主流)3.引用定义4.对象的自救 1.引用计数算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器减1;任何时刻计数器为0的对象就是不可能再被使用的. 缺点: 它很难解决对象之间相互循环使用的问题,也就导致引用计数法无法通知GC收集器回收他们; 2.可达性分析算法(主流) 基...原创 2019-12-31 14:40:56 · 223 阅读 · 1 评论 -
对象的内存布局及访问定位
对象的内存布局及访问定位1.对象头a.存储对象自身的运行时数据b.对象执行它的类元数据指针2.实例数据3.对齐填充 1.使用句柄 2.使用指针访问 1.对象头 a.存储对象自身的运行时数据 如哈希码,GC分代年龄,锁状态标志,线程持有的锁,偏向线程ID,偏向时间戳等,这部分数据的长度再32位和64位的虚拟机(未开启压缩指针中分别为32 bit 和 64 bit),官方称他为"Mark W...原创 2019-12-20 16:37:26 · 81 阅读 · 0 评论 -
对象的创建--虚拟机过程
对象的创建--虚拟机过程1.检查2.分配内存空间 a.指针碰撞分配 b.空闲列表分配3.初始化零值4.对象设置 1.检查 虚拟机遇到一个new 指令是,首先会检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并切检查这个符号引用代表的类是否已被加载,解析和初始化过. 如果没有,则必须先执行相应的类加载过程;如果有,则会分配内存空间 2.分配内存空间 对象所需内存的大小在类加...原创 2019-12-20 11:26:53 · 86 阅读 · 0 评论 -
Java 虚拟机运行时数据区相关简介
Java 虚拟机运行时数据区一.展示图二.相关区域简介及作用1.程序计数器:2.Java虚拟机栈:3.本地方法栈:4.Java堆:5.方法区:6.运行时常量池:7.直接内存: 一.展示图 二.相关区域简介及作用 1.程序计数器: 是一块较小的内存空间,可以看做当前线程所执行的字节码的行号指示器.字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,跳转,异...原创 2019-12-09 10:02:29 · 70 阅读 · 0 评论