JVM
文章平均质量分 76
写代码的蓝胖子
搬砖小码农
展开
-
【JVM笔记】对象生死存亡
对象生死存亡 java虚拟机要对堆内存的对象进行回收时,要先判断对象的存活状态,只有对象不可用时,才能对此进行垃圾回收,释放内存中的空间。可怎么确定对象是否可用呢? 有引用计数算法,可不能解决对象互相引用的问题,实际这2个对象已经不再被访问,但由于它们相对引用,引用计数都不为0 ,该策略不可行。 Java是通过可达性分析来判定对象是否存活的 可达性分析算法(Reachability Analysis) 算法基本思路是通过一系列的称为"GC Roots"的对象作为起始点,从这些节点开始向下搜索,搜索走过的原创 2021-04-17 17:35:39 · 109 阅读 · 0 评论 -
【JVM笔记】类加载器·双亲委派模型
类加载器·双亲委派模型 从Java虚拟机的角度来看,只存在2种不同的类加载。一是启动类加载器(Bootstrap ClassLoader),作为虚拟机的一部分;二是所有其它类加载器,独立于虚拟机外部,并且继承于抽象类java.lang.ClassLoader。 划分 从可以Java开发人员角度来看,类加载器可更细分点。 启动类加载器(Bootstrap ClassLoader) 负责将存放&...原创 2018-10-23 23:22:51 · 275 阅读 · 0 评论 -
【JVM笔记】类与类加载器
类与类加载器 对于任意一个类,都需要由加载它的类加载器和这个类本身一同确定其在java 虚拟机中的唯一性,每一类加载器,都拥有一个独立的类名称空间。 不是同一类加载器加载的类,会对类的Class对象的equals()、isAssignableFrom()、isInstance(),以及instanceof关键字。 instanceof关键字影响如下 package jvm; import jav...原创 2018-10-23 22:22:52 · 112 阅读 · 0 评论 -
【JVM笔记】Class类文件结构
Class类文件结构 Class文件是一组以8位字节为基础单位的二进制流,各个数据项严格按照顺序紧凑地排列在Class文件之中,中间没有添加任何分隔符。Class文件格式采用一种类似于语言结构体的伪结构来存储数据,这种伪结构中只有两种数据类型:无符号数(u)和表(_info)。 SmartyPants SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如: ...原创 2018-10-14 23:09:15 · 163 阅读 · 0 评论 -
【JVM笔记】类初始化的规范
类的生命周期 大概地了解一下类的生命周期及发生顺序。 类初始化的规范 Java虚拟机规范严格地规定 有且只有 5种情况必须立即对类进行“初始化”。 如果类没有进行过初始化,则需要触发其初始化。 遇到new、getstatic、putstatic或invokestatic这4条字节码指令睦,如果类没有进行过初始化,则需要触发其初始化。常见的java代码场景是:new 实例化对象、读取或设置类...原创 2018-10-14 22:07:00 · 136 阅读 · 0 评论 -
【JVM笔记】类加载过程
类加载时机 加载—>验证—>准备—>解析—>初始化—>使用—>卸载 验证、准备、解析为连接阶段。 加载、验证准备、初始化和卸载这个阶段顺序是确定的。 加载 加载是类加载过程的一个阶段,这个过程中,虚拟机需要完成以下3件事。 通过一个类的全限名来获取定义此类的二进制字节流 将这个字节流所原创 2018-06-27 11:10:05 · 151 阅读 · 0 评论 -
【JVM笔记】Java堆溢出
场景模拟 通过设置VM 参数head内存大小,并且不扩展。编写一个方法,无限的new 对象。 编写代码 import java.util.ArrayList; import java.util.List; /** * VM Arags: -Xms20m -Xmx20m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=G:\WorkSpa...原创 2018-05-20 17:31:55 · 188 阅读 · 0 评论 -
【JVM笔记】Java内存区域
运行时数据区域 JVM 在执行Java程序过程中,会把它所管理的内存划分为不同的数据区域,为每个数据区域定义不同的概念模型。 不过也仅是概念模型,各种虚拟机可能通过一些更高效的方式去实现。 程序计数器 Program Counter Register 它是一块内存较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。在虚拟机概念模型里,字节码解释器工作时就是通过改变程序计数器的...原创 2018-05-20 11:41:56 · 170 阅读 · 0 评论