java垃圾回收机制介绍

本文介绍了Java的垃圾回收机制,旨在解决内存管理问题,避免内存泄露和内存溢出。文章详细讲解了内存泄露的类型和内存溢出的原因,并提出了解决方案。接着,阐述了分代垃圾回收策略,包括年轻代、年老代和持久代的特点及各自对应的收集器。最后,讨论了GC的执行机制,包括Scavenge GC和Full GC的工作原理。
摘要由CSDN通过智能技术生成

一、垃圾回收机制

java中引入了一种独特的内存回收机制解决了过去在c++中令人头疼的内存管理问题,使得java程序员在编写程序的时候不必考虑内存的问题。
由于这个机制的存在,java的对象不再有"作用域"的概念,只有对象的引用才有"作用域"。
他很有效的防止了内存泄漏,同时也更加能利用空闲的内存。

这里出现了两个概念:内存泄露(memory leak)内存溢出(out of memory)

内存泄露:指程序在申请内存后,无法释放已申请的内存空间,一次内存泄漏似乎不会有大的影响,但内存泄漏堆积后的后果就是内存溢出。

内存溢出:指程序申请内存时,没有足够的内存供申请者使用,或者说,给了你一块存储int类型数据的存储空间,但是你却存储long类型的数据,那么结果就是内存不够用,此时就会报错,即所谓的内存溢出。

内存泄露量大到一定程度会导致内存溢出。但是内存溢出不一定是内存泄露引起的。

常见的内存泄露有四类:
1、常发性内存泄漏
发生内存泄漏的代码会被多次执行到,每次被执行的时候都会导致一块内存泄漏。
2、偶发性内存泄漏
发生内存泄漏的代码只有在某些特定环境或操作过程下才会发生。常发性和偶发性是相对的。对于特定的环境,偶发性的也许就变成了常发性的。所以测试环境和测试方法对检测内存泄漏至关重要。
3、一次性内存泄漏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值