摘要: 本文主要了解三种常用的垃圾收集算法: 1.标记-清除算法(Mark Sweep): 此过程分为两个步骤:垃圾标记,垃圾清除。该算法相比于其他两个算法:执行效率低下,还容易产生内存碎片。 但是由于老年代的生命周期比较长,使用复制清除算法操作的对象会比较多,所以老年代会使用标记清除算法。但是由于内存空间 阅读全文
posted @ 2019-08-22 23:42 德鲁大叔817 阅读(657) 评论(0) 推荐(0) 编辑
摘要: 1.GC的作用: GC(Garbage Collection)就是JVM中自动内存管理机制的具体实现。GC包括两大功能:内存的分配,垃圾的回收。内存的分配上一文章中已经介绍过,因为对象生命周期的差异性,故采使用分代垃圾回收策略。 那么如何评价一款GC的性能优劣呢???主要有如下的几个标准 2.垃圾的 阅读全文
posted @ 2019-08-22 23:25 德鲁大叔817 阅读(438) 评论(0) 推荐(0) 编辑
摘要: 之前有提到过,为了提高GC的回收效率,对象实例的内存分配不一定必须存在于堆区中,还可采用堆外分配。而最常见的堆外分配就是采用逃逸分析筛选出未发生逃逸的对象,在栈帧中分配内存空间。 逃逸分析:就是分析出对象的作用域。当一个对象在方法体内声明后,该对象的引用被其他外部所引用时该对象就发生了逃逸,反之就会 阅读全文
posted @ 2019-08-22 22:48 德鲁大叔817 阅读(615) 评论(0) 推荐(0) 编辑
摘要: 1.JVM的三种引用类型: 之前介绍过,为了提高GC的执行效率Java的实例对象也可以创建在堆区之外,但是绝大多数的实例对象还是创建在了堆区中。在JVM中包含三种引用类型即:类类型(class type),数组类型(array type),接口类型(interface type),这些引用类型的对象 阅读全文
posted @ 2019-08-22 00:17 德鲁大叔817 阅读(306) 评论(0) 推荐(0) 编辑