深入理解Java虚拟机——内存泄露和内存溢出——史上最烂的图文并茂结合

  • 内存溢出
    系统已经不能再分配出你所需要的空间,比如你需要100G的空间,系统只剩900G了,这就叫内存溢出

  • 内存泄露
    对象已经没有被应用程序使用,但是垃圾回收器没办法移除他们,因为还在被引用者
    原理图
    在这里插入图片描述
    对于刚在上大二的我而言,以下是我遇到过的内存泄露问题,并查阅资料总结出来

  • 如何防止内存泄露?

  • 特别注意一些像HashMap、ArrayList的集合对象,它们经常会引发内存泄漏。当它们被声明为static时,它们的生命周期就会和应用程序一样长。

  • 特别注意事件监听和回调函数。当一个监听器在使用的时候被注册,但不再使用之后却未被反注册。

  • 如果一个类自己管理内存,那我们就得小心内存泄漏问题了。” 通常一些成员变量引用其他对象,初始化的时候需要置空。

发布了167 篇原创文章 · 获赞 119 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_44891295/article/details/104077423
今日推荐