JVM
文章平均质量分 83
天上飞的云传奇
一个年轻人
展开
-
JVM之垃圾回收器和内存分配策略
如何判断一个对象存活? 引用计数。对象每被引用一次,计数器值+1.为0时代表对象可回收。缺点:对象相互引用,无法回收 可达性分析:从一系列的 GCRoots 开始一个引用链。一个对象无法连接到引用链则可回收(最多二次标记)。 GCROOts: 虚拟机栈中所引用对象,正在执行的方法中的局部变量、方法参数所引用对象。 本地方法栈中所引用对象 方法区中类静态变量所引用对象 方法区中常量池所引用对象,比如说字符串常量池 最多二次标记:如果重写了finalize()方法并且是第一次调用则会加入到一个F队列中,原创 2022-01-12 15:36:10 · 148 阅读 · 0 评论 -
JVM之内存区域和Java内存模型(JMM)
JVM运行时5个数据区域 程序计数器: 是什么:是线程私有的,一块小的内存,用来作为当前线程执行字节码的行号指示器。 起到的作用:是分支、循环、异常、线程恢复的基础。 Java方法,该计数器指示行号;本地方法,该计数器为null 虚拟机中唯一不会抛出OOM的内存区域 Java虚拟机栈:线程私有的,生命周期与线程相同。 是什么:Java方法执行的线程内存模型:每个方法执行的时候都会创建一个栈帧,用于存储局部变量表、操作数栈、方法出口等信息。 局部变量表中存储:编译器已知的基本类型,对象引用原创 2022-01-12 09:16:25 · 141 阅读 · 0 评论