Java面试--内存泄漏是什么,如何解决

内存泄漏是什么?

提前知识:

Java内存管理,只有知道java是如何管理内存的,才能了解什么是 Java 的内存泄漏。

Java的内存管理就是对象的分配和释放问题。在Java中,内存的分配是由程序完成的,内存的释放是由GC完成的。

我们写程序不需要用函数释放内存。不需要管这些。

 

1. 原因:

主要原因就是,之前申请了内存空间但是忘记释放。如果程序中存在无用对象的引用。那么这些对象就会驻留内存,消耗内存。因为无法让GC验证这些对象是否不再需要。

Java中,内存泄漏就是存在一些被分配的对象。

就是,1.对象是有被引用的,在有向树形图中,存在树枝可以与其相连,2.是无用的,程序以后不会再使用这些对象。如果对象满足这两个条件,那么这些对象可以判定为Java中的内存泄漏。这些对象不会被GC所回收,然而它会占用内存。

2.典型的内存泄漏

 

1.全局集合。

2.缓存,

3.类装载器

3.如何处理

1.检查数据库查询中,是否有一次获得全部数据的查询,如果一次取10W条数据,可能就会内存溢出。尽量使用分页方式查询。

2. 检查代码中是否由死循环或递归调用。

3. 是否由大循环重复产生新对象实体。

4.检查Map list等集合对象是否有使用完未清除的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值