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