JVM
韩who
这个作者很懒,什么都没留下…
展开
-
图解JVM--(二)垃圾回收
垃圾回收 1.如何判断对象可以回收 1.1 引用计数 在对象中添加一个引用计数器,每当有一个地方引用它,计数器值就加一,当引用失效时,计数器值就减一,任何时刻计数器为零的对象就不可能再被使用的,就可以做为垃圾被回收 会出现如上图的循环引用,永远清除不了 1.2 可达性分析算法 java虚拟机中的垃圾回收器采用可达性分析来探索所有存活的对象 扫描堆中的对象,看是否能够沿着GC Root对象...原创 2020-02-06 22:42:53 · 139 阅读 · 0 评论 -
图解JVM--(三)类加载与字节码技术
类加载与字节码技术 1.类文件结构 根据 JVM 规范,类文件结构如下 ClassFile { u4 magic; //魔数 u2 minor_version; //小版本号 u2 major_version; //java 主版本号 u2 constant_pool_count; //常量池 cp_info constant_pool[constant_...原创 2020-02-06 22:43:27 · 312 阅读 · 0 评论 -
图解JVM--(四)内存模型
内存模型 java 内存模型 很多人将【java 内存结构】与【java 内存模型】傻傻分不清,【java 内存模型】是 Java Memory Model(JMM)的意思。 简单的说,JMM 定义了一套在多线程读写共享数据时(成员变量、数组)时,对数据的可见性、有序性、和原子性的规则和保障 1.原子性 问题提出,两个线程对初始值为 0 的静态变量一个做自增,一个做自减,各做 5000 次,结果是...原创 2020-02-06 22:44:06 · 263 阅读 · 0 评论 -
图解JVM--(一)内存结构
jvm内存结构 1.程序计数器 1.1 定义 Program Counter Register 程序计数器(寄存器) 作用,记住下一条jvm指令的执行地址 特点 是线程私有的 (唯一)不会存在内存溢出 1.2 作用 二进制字节码 jvm指令 public int add(); Code: 0: iconst_1 // 把1压入操作数栈中 1...原创 2020-02-06 22:42:12 · 300 阅读 · 0 评论