1. 为什么有500M的内存空间,在JAVA申请50M的缓存区时有时候会出现内存泄漏呢
答 : 因为虽然有500M,但是没有连续的50M
2. 为什么JAVA会内存泄漏,也没有申请很大的内存空间啊
答 : 这和java的垃圾回收机制有关,虽然有垃圾回收,但是具体的回收时机却是不一定的,在JVM中,专门回收垃圾的线程,实际上优先级是最低的,所以很难有机会让其去回收垃圾,有些人说了,调用System.gc()可以不,恩可以,但是不会立刻去回收,这个方法有点将优先级提高的意思,但是不会立刻回收垃圾。这是一点,另外,JAVA在确定回收一个对象时,都会做很多判断,确定他确实没有引用指向为止。所以,为了让虚拟机省去很多判断,在你确定不用某个对象时,需要将引用指向NULL,这样虚拟机就不会做那么多判断,进行快速回收,提高了性能,也降低了内存泄漏的可能性。