内存泄露是指无用对象(不再使用的对象)持续占有内存
无用对象的内存得不到及时释放
容易发生内存泄漏的场景
1. 静态集合类引起内存泄露,像HashMap这些静态变量的生命周期和应用程序一致,他们所引用的所有的对象Object也不能被释放,因为他们也将一直被Vector等引用着。
2. 当集合里面的对象属性被修改后,再调用remove()方法时不起作用。当remove不掉set中的对象时,set会长时间持有无用的对象,导致内存泄漏。
单例模式
3. 不正确使用单例模式是引起内存泄露的一个常见问题,单例对象在被初始化后将在JVM的整个生命周期中存在(以静态变量的方式),如果单例对象持有外部对象的引用,那么这个外部对象将不能被jvm正常回收。
java内存泄漏易发场景
最新推荐文章于 2024-08-02 10:48:42 发布