JVM 垃圾回收算法和垃圾回收器。 一、垃圾回收的区域 栈:栈中的生命周期是跟随线程,所以一般不需要关注。 堆:堆中的对象是垃圾回收的重点。 方法区:这一块也会发生垃圾回收,不过这块的效率比较低,一般不是我们关注的重点。 二、怎么判断对象的存活 一般有两种方式(引用计数法、可达性分析),JVM使用的 ...
分类:
编程语言 时间:
2021-06-13 10:10:08
阅读次数:
0
1.Mark-Sweep算法 整个算法分为标记和清除两个部分。 标记阶段采用可达性分析算法。可达性分析算法从GC roots出发,寻找引用的对象,如果对象被遍历到,则标记。 清除阶段对目标空间进行遍历,若对象没有被标记过,则清除该对象。时间复杂度为O(n),结果会导致空间中存在大量碎片(零碎空间), ...
分类:
编程语言 时间:
2021-02-15 12:21:19
阅读次数:
0
1.垃圾标记阶段算法 在堆里存放着几乎所有的Java对象实例,在Gc执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,Gc才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶段。那么在JVM中究竟是如何标记一个死亡对 ...
分类:
编程语言 时间:
2020-09-18 01:30:02
阅读次数:
36
金三银四马上到了,即将进入面试的高峰期。在BAT面试中,JVM基本都是必考的系列。你至少需要掌握JVM内存模型与JVM参数详细配置,JVM的4种垃圾回收算法、垃圾回收机制与总结,以及今天重点谈到的JVM垃圾回收算法的实现:JVM垃圾收集器。 我先从JVM收集器的发展过程谈起,然后再聚焦在G1收集器, ...
分类:
其他好文 时间:
2020-05-07 13:34:46
阅读次数:
88
阿里一面题目: osi七层网络模型,五层网络模型,每次层分别有哪些协议 死锁产生的条件, 以及如何避免死锁,银行家算法,产生死锁后如何解决 如何判断链表有环 虚拟机类加载机制,双亲委派模型,以及为什么要实现双亲委派模型 虚拟机调优参数 拆箱装箱的原理 JVM垃圾回收算法 CMS G1 hashset ...
分类:
编程语言 时间:
2020-04-25 17:10:17
阅读次数:
213
垃圾回收算法: 标记-清除算法 标记无用对象,再进行清除回收 无法清除垃圾碎片,不需要移动对象 复制算法 按容量划分2个相等的内存区域。当一块用完,将活着的对象复制到另一块上,再对当前使用区域清除 每次只使用一个区域,内存使用率不高。对于存活率高的对象频繁复制 标记-整理算法 标记无用对象,让活着的 ...
分类:
编程语言 时间:
2020-03-23 16:44:36
阅读次数:
68
VM基本是BAT面试必考的内容,今天我们先从JVM内存模型开启详解整个JVM系列,希望看完整个系列后,可以轻松通过BAT关于JVM的考核。 BAT必考JVM系列专题 1.JVM内存模型 2.JVM垃圾回收算法 3.JVM垃圾回收器 4.JVM参数详解 5.JVM性能调优 JVM内存结构 由上图可以清 ...
分类:
其他好文 时间:
2019-12-23 00:36:07
阅读次数:
79
java推荐 内存的自动化整理 也就是自动化解决给对象分配内存以及回收对象的内存 ,这两个问题也是主要针对java的内存模型 堆 ;有效解决内存丢失等问题; 1.内存分类: 新生代: eden内存 新建的对象存储的位置 survivor0 当eden内存空间存满之后就会将存活的对象进行复制进入sur ...
分类:
编程语言 时间:
2019-12-02 14:02:54
阅读次数:
91
引用计数法 :Java虚拟机并未采用这种算法 缺点:1.对象的循环引用 2.伴随加法和减法操作,有一定的性能开销 -可达对象 -不可达对象 : 通过根对象进行引用搜索 复制算法:通常存活对象很少,这个算法效率高,也没有空间碎片,但是内存折半 标记清除法:会产生空间碎片 标记压缩法:老年代存活对象多, ...
分类:
编程语言 时间:
2019-11-29 10:41:24
阅读次数:
94
1、 简述JVM垃圾回收算法分类 常用的垃圾收集算法 JVM的内存结构包括五大区域:程序计数器、虚拟机栈、本地方法栈、堆区、方法区。其中程序计数器、虚拟机栈、本地方法栈3个区域随线程而生、随线程而灭,因此这几个区域的内存分配和回收都具备确定性,就不需要过多考虑回收的问题,因为方法结束或者线程结束时, ...
分类:
其他好文 时间:
2019-10-29 14:10:14
阅读次数:
86