
JVM
文章平均质量分 75
upupxi
缓慢而坚定的成长
展开
-
JVM之垃圾回收器
图解HotSpot虚拟机所包含的收集器:图中展示了7种作用于不同分代的收集器,如果两个收集器之间存在连线,则说明它们可以搭配使用。虚拟机所处的区域则表示它是属于新生代还是老年代收集器。新生代收集器:Serial、ParNew、Parallel Scavenge老年代收集器:CMS、Serial Old、Parallel Old整堆收集器: G1https://www.cnblogs.com/blythe/p/7488061.htmlhttps://www.cnblogs.com/chenpt/原创 2021-08-25 17:21:27 · 108 阅读 · 0 评论 -
JVM之垃圾回收算法
如何判断一个对象死亡- 引用计数法在对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器就减1;任何时刻计数器为0的对象就是不可能再被使用的。(循环引用的问题)- 可达性分析算法这个算法的基本思想是通过一系列称为 “GC Roots” 的对象作为起点,从这些节点开始向下搜索,节点所走过的路径称为引用链,当一个对象到 GC Roots 没有任何引用链相连的话,则证明此对象是不可用的。如何判断⼀个常量是废弃常量?运行时常量池主要回收的是废弃的常量。假如在常量池中原创 2021-08-24 17:00:42 · 125 阅读 · 0 评论 -
JVM之类加载机制
JVM类加载机制类加载过程加载1、通过全类名获取此类的二进制字节流(zip、jar、war包中读取;其他文件生成jsp)2、将字节流所代表的静态存储结构转化为方法区的运行时数据结构3、在内存中生成一个代表该类的class类对象,作为方法区这些数据的访问入口连接1、验证包含:格式检查、语义检查、字节码验证、符号引用验证2、准备为类的静态变量分配内存,并将其初始化为默认值3、解析将常量池中所有的符号引用转为直接引用初始化为类的静态变量赋予正确的初始值类加载器启动类加载器(B原创 2021-07-07 16:37:12 · 134 阅读 · 0 评论 -
JVM运行时数据区(内存模型)
Java程序执行过程:如上图所示,首先Java源代码文件(.java后缀)会被Java编译器编译为字节码文件(.class后缀),然后由JVM中的类加载器加载各个类的字节码文件。加载完毕之后,交由JVM执行引擎执行。在整个程序执行过程中,JVM会用一段空间来存储程序执行期间需要用到的数据和相关信息,这段空间一般被称作为Runtime Data Area(运行时数据区),也就是我们常说的JVM内存。因此,在Java中我们常常说到的内存管理就是针对这段空间进行管理(如何分配和回收内存空间)。内存模型(J原创 2021-08-24 10:29:01 · 279 阅读 · 0 评论