Java 内存泄漏的一些情况和原理

1.       为什么有500M的内存空间,在JAVA申请50M的缓存区时有时候会出现内存泄漏呢

因为虽然有500M,但是没有连续的50M

2.       为什么JAVA会内存泄漏,也没有申请很大的内存空间啊

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值