java - 类加载器内存泄漏是否像看上去那么严重?

标签 java memory-management memory-leaks classloader

我已经使用java很长时间了,我开始考虑内存泄漏。我打算使用类加载器,因为我想让我的程序更加动态。经过一番谷歌搜索后,我读到了更多关于那些丑陋的对象的信息,即使您取消引用它们,这些对象仍会保持加载状态。

我担心我的程序存在内存泄漏。我知道所有的程序都会有一定量的内存泄漏,但是java真的有内存泄漏的丑陋一面吗?我在该部门的问题:

java是否值得处理内存泄漏 java中的内存泄漏真的像谷歌所说的那么严重吗?

如何编写代码来减少内存泄漏,例如如何使用类加载器引用对象以及如何取消引用它们?

是否有类加载器的替代方案,而不会出现保留对象的问题(或同样糟糕的问题)?

最佳答案

仅当您以某种方式进行大量动态类加载时,类加载器内存泄漏才会影响您。例如:

  • 通过重复调用Class.forName()
  • 通过重复创建动态代理类
  • 通过重复热重新部署网络应用程序(例如使用 Tomcat)

大多数应用程序不会执行这些操作,因此不必担心类加载器内存泄漏。

关于java - 类加载器内存泄漏是否像看上去那么严重?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18565742/

相关文章:

java - Apache Shiro Stateless - 无 session JWT token 身份验证问题

Java "add return statement"错误

java - JPQL CASE 语句中的 WHERE 子句问题

ios - __ block 的弱和强变量行为

c - 使用 realloc() 会在传递特定内存值后导致段错误

java - 使用 java 11 编译后的堆外泄漏

java - 如何解决向数据库插入数据时出现SQLiteException错误

c++ - 使用堆调试 MS VC++ 2005

java - 以编程方式检查可用的 heapSize?

c# - 将字节数组转换为内存流和位图导致内存使用率高