Java内存泄漏

什么是内存泄漏:

对象没有被应用程序使用,但是没有移除掉,还在被引用。

判断一个内存空间是否符合垃圾收集的标准有两个:一个是给对象赋予了空值null,以下再没有调用过另一个是给对象赋予了新值,这样重新分配了内存空间

Java内存泄漏引起的原因

无用对象持续占有内存或者得不到及时释放,从而造成内存浪费称为内存泄漏

  • 静态集合类没有清空造成内存泄漏

  • listener释放对象的时候删除监听器

  • 数据库连接,网络连接,io流要及时close

java内存分配策略

  • 静态存储区:静态数据,全局static数据,常量

  • 栈:局部变量,基础数据类型,对象引用

  • 堆:动态内存分配,直接new出来的对象

堆和栈区别

栈:基本类型的变量,对象的引用变量

堆:new出来的对象和数组

如何防止内存泄漏

在确认一个对象无用后,将其所有引用显式的置为null

posted @ 2021-04-28 17:22  西北野狼  阅读(61)  评论(0编辑  收藏  举报