《深入理解java虚拟机》读书笔记
《深入理解java虚拟机》读书笔记
进击的营长
雁过留痕,掷地有声。
展开
-
第三章-垃圾收集器与内存分配策略
3.1概述垃圾收集器关注Java堆和方法区的内存回收。3.2对象已死吗?判断方法:1.引用计数算法2.可达性分析算法3.2.1引用计数算法给对象添加引用计数器,当有地方引用它时就加1,引用失效就减1,为0时就认为对象不再被使用可回收。简单,但是无法解决对象间循环引用的问题3.2.2可达性分析算法给对象添加引用计数器,当有地方引用它时就加1,引用失效就减1,为0时就认为对象不再被使用...原创 2019-12-26 16:39:40 · 97 阅读 · 0 评论 -
第二章-Java内存区域与内存溢出异常
2.1概述如果不了解虚拟机是怎样使用内存的,那么排查错误将会成为一项异常艰难的工作。2.2运行时数据区域2.2.1程序计数器Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。当前线程所执行的字节码的行号指示器,字节码解释器工作时就是通过改变这个计数器的值来确定下一条要执行的字节码指令的位置,对于多线程,每个线程都需要有一个独立的程序计数器(线程私有...原创 2019-12-25 14:12:18 · 145 阅读 · 0 评论 -
第七章-虚拟机类加载机制
7.1概述虚拟机的类加载机制:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型。在Java语言中,类型的加载、连接和初始化过程都是在程序运行期间完成的。7.2类加载的时机类的生命周期:加载---->验证---->准备---->解析---->初始化---->使用---->卸载。...原创 2019-12-24 00:05:02 · 67 阅读 · 0 评论 -
第六章-类文件结构
6.1概述过去:我们将编写的程序编译成二进制本地机器码(Native Code)如今:我们将程序编译为与操作系统和机器指令集无关的、平台中立的格式6.2无关性的基石一次编写,到处运行:Sun公司以及其他虚拟机提供商发布了许多可以运行在各种不同平台上的虚拟机,这些虚拟机都可以载人和执行同一种平台无关的字节码,从而实现了程序的“一次编写,到处运行”。无关性的基石:无关性是指:平台无关性和语言...原创 2019-12-19 23:24:25 · 163 阅读 · 0 评论