Java的垃圾回收机制

Java的垃圾回收机制是Java虚拟机提供的能力,用于在空闲时间以不定时的方式动态回收无任何引用的对象占据的内存空间。
需要注意的是:垃圾回收回收的是无任何引用的对象占据的内存空间而不是对象本身,很多人来我公司面试时,我都会问这个问题的,70%以上的人回答的含义是回收对象,实际上这是不正确的。
System.gc()
Runtime.getRuntime().gc() 
上面的方法调用时用于显式通知JVM可以进行一次垃圾回收,但真正垃圾回收机制具体在什么时间点开始发生动作这同样是不可预料的,这和抢占式的线程在发生作用时的原理一样。

垃圾回收用于释放以后不再使用的对象所占的内存。而至于垃圾回收器什么时候回收是无法控制的,垃圾回收时间也是无法预料的。即使使用了System.gc()
  Runtime.getRuntime().gc()
也只是简单的申请垃圾回收,垃圾回收器并不一定在接到申请后就立刻回收。
这是Java的一大特色,至于SUN是如何实现这一功能的,因为其不开源,所以不得而知。

你可能感兴趣的:(java,jvm,虚拟机,面试,sun)