黑马程序员技术交流社区

标题: 【成都校区*精品*自研】JVM垃圾回收机制 [打印本页]

作者: 小蜀哥哥    时间: 2018-3-27 16:17
标题: 【成都校区*精品*自研】JVM垃圾回收机制
本帖最后由 小蜀哥哥 于 2018-3-27 16:17 编辑

JVM垃圾回收机制
1.了解JVM
Java是一门面向对象的语言,具有高可用,分布性,可移植性等众多优势,将代码运行在JVM平台上,强大的JVM与系统底层打交道,从而使程序员从直接与操作系统直接交互中解脱出来,且实现了c++不具备的自动回收垃圾功能,而随着Sun公司和Oracle公司不断的对JVM进行改造,使得JVM性能更加优越。

2.JVM垃圾回收的意义
在C++中,对象所占用的内存在程序员手动释放之前,无论这个对象是否是一个垃圾,这个对象所占用的内存空间都不会被释放,而这样的无用的对象若长时间的存在于内存之中,势必造成内存紧张,从而影响程序的执行效率,而在Java中,一旦这个对象被视为无用对象之后,JVM会自动将其回收,以便将这个内存赋予给其他需要的对象所使用,但自动的垃圾回收也存在潜在的缺点,JVM需要时时的监控,追踪程序中对象是否可用,也消耗了性能
3. JVM垃圾回收的原理
   了解什么样的对象是一个垃圾
[Java] 纯文本查看 复制代码
public class Demo {
        public Demo instance = null;
        public static void main(String[] args) {
                 Demo a = new Demo();
                 Demo b = new Demo();
                 a.instance = b;
                 b.instance = a;
                 a = null;
                 b = null;
        }
}


在这段代码中,此时demo a中的instance指向了b,demo b中的instance指向了a,此时a到b 的引用,b到a的引用都已经断开,demo a,demo b两个对象都已经无法再次调用,故而两个对象都已经是垃圾,但根据引用计数算法(即传统的教学方式所描述的垃圾)该对象并非垃圾,因为此时a,b都存在互相指向的问题,我们把这样的问题称之为循环引用问题,
--正确判断垃圾的标准:可达性算法







4. JVM垃圾回收算法介绍
针对JVM垃圾回收共有4种算法: 1.标记清除算法 2.复制清除算法(分配担保) 3.标记整理算法 4.分代算法


作者: 钟佩桓    时间: 2018-3-27 16:19
66666666!
作者: 盖碗茶    时间: 2018-3-27 16:20
小蜀哥哥出品  必属精品~
作者: 成都学工部    时间: 2018-3-27 16:27
666666,很棒棒哦
作者: 成都校区    时间: 2018-3-27 16:28
小蜀哥哥出品  必属精品~
作者: 大哥大    时间: 2018-3-27 16:56
厉害啦666
作者: 酸辣粉    时间: 2018-3-27 17:49
666666
作者: 595156223    时间: 2018-8-18 17:49
绝对精品!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2