![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
shuangpinai2014
这个作者很懒,什么都没留下…
展开
-
JVM之类加载机制
一个Java类从被加载到虚拟机内存到被卸载出内存为止,生命周期一共包括如下几个阶段: 加载(Loading) 验证 (Verfication) 准备 (Preparation) 解析 (Resolution) 初始化 (Initialization) 使用 (Using) 卸载 (Unloading) 其中验证、准备、解析这个3个部分统称为链接(Linking)。 加载、验证、准...原创 2018-07-08 09:32:42 · 261 阅读 · 0 评论 -
Java类的初始化
之前整理了《JVM之类加载机制》的文章,对于一个类的初始化阶段介绍太过简略,这里再开一篇文章,着重介绍类的初始化流程。 类初始化是类加载过程的最后一个阶段,到初始化阶段,才真正开始执行类中的Java程序代码。虚拟机规范严格规定了有且只有四种情况必须立即对类进行初始化: 遇到new、getstatic、putstatic、invokestatic这四条字节码指令时,如果类还没有进行过初始化...原创 2018-07-10 18:05:49 · 148 阅读 · 0 评论 -
JVM之内存区域划分
JVM在执行Java过程中会把它所管理的内存划分为一下几个运行时数据区域: 程序计数器 Java虚拟机栈 本地方法栈 Java堆 方法区 程序计数器 程序计数器是一块内存较小的空间,可以看作是当前线程执行的字节码的行号指示器,是每个线程私有的内存区域。 当前线程执行的是java方法时,计数器记录的是正在执行的虚拟机字节码指令的地址 当前线程执行的是Native方法时,计数器为...原创 2018-07-10 22:27:34 · 173 阅读 · 0 评论 -
JVM之内存回收算法
概述 GC需要完成3件事情: 那些内粗需要回收 什么时候回收 如何回收 那么该如何判断对象已死,可以被回收呢? 引用计数法 引用计数算法:给对象添加一个引用计数器,每当有一个地方引用它时,计数器就+1;当引用失效时计数器就-1;任何时候计数器为0时,对象就不再使用,可以被回收。 虽然引用计数法实现简单,效率也很高,但是它很难解决对象之间的相互循环引用问题。 举个例子: ...原创 2018-07-12 17:24:56 · 250 阅读 · 0 评论