GC是虚拟机的事情,你不能管,也不用管。你只能知道在程序中进行到的某个时刻的某个资源“可以被垃圾收集”(注意了,是可以哦,表示满足垃圾收集的标准,不表示JVM一定会在这个时候收集它。)    垃圾收集的标准:比如这个资源已经不再使用了,而且程序中也没有任何地方存在对这个资源的引用了,那么这个资源“可以被收集”。   Java是混合型语言(编译+解释)。为了达到平台无关性,Java程序只能被编译到字节码这个阶段,也就是bytecode,这个字节码的标准每个是不受操作系统影响的。而真正要在各个操作系统上运行Java字节码,需要JVM,也就是Java虚拟机,这个虚拟机不是独立的,每个操作系统都有适合自己版本的JVM。通过JVM来解释运行编译好的字节码。
   这种混合型设计,保证了Java的最大优势之一:跨平台特性,但也造成了Java最大的一个缺点:速度太慢。------------------
以上小弟的看法,抛砖引玉,闪先~~~~~~~~