JVM
A coding monkey
这个作者很懒,什么都没留下…
展开
-
JVM如何判断哪些对象可以被回收
在堆内存中存放着java程序中几乎所有的对象实例,堆内存的容量是有限的,JVM会对堆内存进行管理,回收已经不可用的对象,释放内存。回收之前,首先要判断的是,哪些对象可以回收? 引用计数器算法 引用计数器的算法原理:给对象添加一个引用计数器,每当有一个地方引用它时,计数器的值就会加1;当引用失效时,计数器就会减1;在任何时刻计数器的值为0的对象就是不可能再被使用的,也就是被回收的...转载 2018-02-28 15:58:09 · 1572 阅读 · 0 评论 -
JVM:GC算法深度解析
在JVM实现中,往往不是采用单一的一种算法进行回收,而是采用几种不同的算法组合使用,来达到垃圾的回收。 最基础的收集算法---------标记/清除算法 标记/清除算法是GC算法中最基础的算法,后续的收集算法都是基于这种思路进行改进而得到的。标记/清除算法分为“标记”和“清除”两个阶段:首先标记出所有要回收的对象,在标记完成之后回收所有被标记的对象。 标记阶段:标记过程就...原创 2018-02-28 22:53:05 · 265 阅读 · 0 评论 -
JVM面试
1. 内存模型以及分区,需要详细到每个区放什么。Java内存模型:2. 堆里面的分区:Eden,survival from to,老年代,各自的特点。Java堆分为新生代和老年代,新生代又分为一块较大的Eden区和两块较小的Survivor区(From Survivor和To Survivor)。 新生代:里面的对象朝生夕灭,每次垃圾收集时都会都有大量的对象死去,只有少量存活,Eden内存不够时,...转载 2018-03-01 13:16:11 · 188 阅读 · 0 评论 -
类加载过程和类加载器
在Java中,类加载都是在运行期间执行的,这种策略虽然令类加载稍微增加一些性能,但是会给java应用程序提供高度的灵活性。类加载的过程 和其他语言一样,java编译器同样能够将.java文件编译成.class,但是对于JVM来讲,它并不关心,是哪种语言经过编译形成的。 JVM类加载工作原理:就是把类的class文件加载到内存中,并对数据进行校验、转换解析和初始化,最终形成被虚拟...原创 2018-03-05 22:03:16 · 6929 阅读 · 4 评论