随笔分类 -  GC垃圾回收

Java垃圾回收(GC)机制详解
摘要:一、为什么需要垃圾回收 如果不进行垃圾回收,内存迟早都会被消耗空,因为我们在不断的分配内存空间而不进行回收。除非内存无限大,我们可以任性的分配而不回收,但是事实并非如此。所以,垃圾回收是必须的。 二、哪些内存需要回收? 哪些内存需要回收是垃圾回收机制第一个要考虑的问题,所谓“要回收的垃圾”无非就是那 阅读全文
posted @ 2018-11-19 09:33 傲视苍穹 阅读(213) 评论(0) 推荐(0)
java什么时候进行垃圾回收,垃圾回收的执行流程
摘要:java的垃圾回收分为 三个区域新生代 老年代 永久代 一个对象实例化时 先去看伊甸园有没有足够的空间如果有 不进行垃圾回收 ,对象直接在伊甸园存储.如果伊甸园内存已满,会进行一次minor gc然后再进行判断伊甸园中的内存是否足够如果不足 则去看存活区的内存是否足够.如果内存足够,把伊甸园部分活跃 阅读全文
posted @ 2018-11-19 09:18 傲视苍穹 阅读(867) 评论(0) 推荐(0)
JVM-GC算法(三)-分代收集算法
摘要:对象分类 上次已经说过,分代收集算法是针对对象的不同特性,而使用合适的算法,这里面并没有实际上的新算法产生。与其说分代收集算法是第四个算法,不如说它是对前三个算法的实际应用。 首先我们来探讨一下对象的不同特性,接下来博主和各位来一起给这些对象选择GC算法。 内存中的对象按照生命周期的长短大致可以分为 阅读全文
posted @ 2017-10-25 23:18 傲视苍穹 阅读(621) 评论(0) 推荐(0)
JVM-GC算法(二)-复制算法&&标记整理算法
摘要:这次我和各位分享GC最后两种算法,复制算法以及标记/整理算法。上一篇在讲解标记/清除算法时已经提到过,这两种算法都是在此基础上演化而来的,究竟这两种算法优化了之前标记/清除算法的哪些问题呢? 复制算法 我们首先一起来看一下复制算法的做法,复制算法将内存划分为两个区间,在任意时间点,所有动态分配的对象 阅读全文
posted @ 2017-10-25 23:17 傲视苍穹 阅读(975) 评论(0) 推荐(0)
JVM-GC算法(一)-标记清除算法
摘要:首先,我们得知道根搜索算法,它可以解决我们应该回收哪些对象的问题,但是它显然还不能承担垃圾搜集的重任,因为我们在程序(程序也就是指我们运行在JVM上的JAVA程序)运行期间如果想进行垃圾回收,就必须让GC线程与程序当中的线程互相配合,才能在不影响程序运行的前提下,顺利的将垃圾进行回收。 为了达到这个 阅读全文
posted @ 2017-10-25 23:13 傲视苍穹 阅读(546) 评论(0) 推荐(0)