摘要:
一、简介 众所周知,Java虚拟机最大的特性就是跨平台,但是,Java虚拟机还有另一个重要的特性,就是语言无关性,Java虚拟机支持其它语言通过编译器编译成.class字节码文件,交付给虚拟机运行。 大家都知道Java语言通过javac编译器将Java编译成.class字节码文件,其它语言也是一样的 阅读全文
摘要:
一、可达性分析算法 “GC Roots”根对象集作为起始点集合,从这些节点开始,根据引用关系向下搜索,搜索过程路径称为“引用链”。如果,某对象到GC Root没有引用链相关联,那么,就是GC Root到对象不可达,则证明这个对象不可能再被使用。 上图所示,Object 1与GC Root可达,而Ob 阅读全文
摘要:
一、对象何时回收 Java中,使用可达性分析算法标识对象是否回收,即使对象通过可达分析算法被标记为不可达对象,对象不一定被被回收,对象需要经过两次标记才会被回收。在第一次标记后对象会被放入“即将回收”的集合中。对象在随后的判定是否有必要执行finalize()函数后,才会被进行第二次标记,这样,对象 阅读全文
摘要:
概述 在Java 1.2版本后,将引用概念进行扩充,分别为:强引用、软引用、弱引用、虚引用,引用强度由强到弱。 一、强引用 在程序中最常用的引用方式,如:Object obj = new Object()这种引用关联,强引用只要引用关系存在,GC在回收时就不会回收引用的对象。 二、软引用 软引用是描 阅读全文