java虚拟机垃圾回收算法
来源:互联网 发布:mac du max depth 编辑:程序博客网 时间:2024/04/28 10:19
1.引用计数法
2.标记清除法
3.标记压缩法
4.复制法
5.分代法
6.分区法
什么是垃圾回收:
垃圾回收:Garbage collection 简称GC 简单的说垃圾回收就是将不用的对象所占用的内存回收在java虚拟机中垃圾回收是自动的
1.引用计数法
引用计数:对于一个A对象,只要有一个对象引用引用它,A对象引用计数就加1 缺点: 1.会产生循环引用(如A,B对象都没有被使用,需要被回收,但是A引用 了B,B也引用了A,这样就导致A,B不能被回收) 2.每次对象引用,对象就会加1或减1,会影响性能
2.标记清除法
标记清除:分为标记和清除两个阶段。它有根节点,相当于链表头,标记阶段: 从根节点可以到达的对象就标记,没有被标记的对象就是垃圾对象,清除阶段: 清除哪些没有被标记的对象 坏处:会产生空间碎片 图一:
3.标记压缩法
标记压缩法:在标记清除法上加了一个压缩,什么是压缩?就是在清除时将标记的对象放在一个连续的区域在图一的基础上:
4.复制法
赋值算法相当于将一块内存分为两块只是使用一块,在垃圾回收时将存活的对象直接复制到另外一块中,代价内存折半了,适用于存活对象少,垃圾对象多的场景
5.分代法
分代就是:根据对象的特点将内存分为不同的区,不同的区使用不同的回收算法一般分为:新生代和老年代,新生代使用复制算法,老年代使用标记压缩或标记清除 为了提高回收效率:会使用一个卡表(Card Table)数据结构,是比特集合表示为一个区域(一般是4k大小)的老年代是否持有新生代的引用
6.分区法
分区方法:将堆内存分为连续不同的小区间,每一个小区间独立使用,回收。可以控制一次回收多少个区,减少GC
阅读全文
0 0
- Java虚拟机垃圾回收算法
- JAVA虚拟机--垃圾回收算法
- JAVA 虚拟机,垃圾回收算法
- java 虚拟机垃圾回收算法
- java虚拟机垃圾回收算法
- 深入理解java虚拟机【垃圾回收算法】
- 深入理解java虚拟机[垃圾回收算法]
- 《深入理解java虚拟机》垃圾回收算法
- 深入理解Java虚拟机--垃圾回收算法
- java虚拟机垃圾回收算法剖析
- Java虚拟机--垃圾回收算法(六)
- 深入理解java虚拟机--->垃圾回收算法
- java虚拟机的垃圾回收算法
- 【Java虚拟机】之二 垃圾回收算法
- 深入Java虚拟机笔记---垃圾回收算法,Java垃圾收集
- java虚拟机------垃圾回收
- Java虚拟机垃圾回收
- java虚拟机-垃圾回收
- 【linux】printf在终端打印彩色hello world
- Spring Boot中RestTemplate的使用
- YARN介绍
- 剑指offer—二叉树的深度
- CSS的@规则
- java虚拟机垃圾回收算法
- Spring和ActiveMQ整合的完整实例
- 比较器
- TensorFlow全新的数据读取方式:Dataset API入门教程
- Java安装和IntelliJ IDEA
- 查看ie浏览器版本
- 页面
- Laravel数据库操作的三种方式
- dfsadmin