
Java虚拟机
文章平均质量分 85
绕远的偶人
300字以内
展开
-
《深入理解Java虚拟机》读书笔记——内存区域、OOM、对象(创建、存储和定位)、String.intern()
1、内存区域和OOM (1)程序计数器:较小的空间,可以看作当前线程所执行的字节码的行号指示器(即字节码指令的地址),每条线程都需要一个独立的程序计数器,用于切换线程后能恢复到正确的执行位置,是唯一一个没有规定OOM情况的区域。如果执行的是native方法,计数器为空(native方法体不是由java字节码构成的); (2)Java虚拟机栈:线程私有,生命周期与线程相同。每个方...原创 2018-04-25 20:29:14 · 217 阅读 · 0 评论 -
《深入理解Java虚拟机》读书笔记——垃圾收集器和内存分配策略
1、判断对象是否存活 (1)引用计数法:给对象添加一个引用计数器,每当有一个地方引用它时,计数器值就加1。无法解决循环引用的问题,无法表示强、软、弱、虚引用四种引用类型; (2)可达性分析:以GC Roots为起点,向下搜索,搜索的路径称为引用链,当一个对象到GC Roots没有任何引用链相连,可回收。GC Roots包括【1】虚拟机栈(栈帧中的本地变量表)中引用的对象【2】本地方法栈...原创 2018-04-29 20:31:18 · 212 阅读 · 0 评论 -
《深入理解Java虚拟机》读书笔记——类文件结构、虚拟机类加载机制等
1、类文件结构,虚拟机接受Class字节码文件,是与操作系统和机器指令集无关的、平台中立的格式,其他语言也可以编译成Class文件,字节码命令所能提供的语义描述能力比Java语言更加强大。Class文件是一组以8位字节为基础单位的二进制流,只有无符号数和表两种数据类型,有如下一些组成部分: (1)魔数与Class文件版本:魔数唯一作用是确定这个文件是否为一个能被虚拟机接受的Class文件,0...原创 2018-04-29 23:47:52 · 188 阅读 · 0 评论