我得到了一个java.lang.OutOfMemoryError
,它似乎发生在我做反思的时候:
obj.getClass().getMethod(methodName, (Class[]) null);
这说明什么?有人知道吗?
我得到了一个java.lang.OutOfMemoryError
,它似乎发生在我做反思的时候:
obj.getClass().getMethod(methodName, (Class[]) null);
这说明什么?有人知道吗?
代码是一样的
obj.getClass().getMethod(methodName)
这说明什么?
它表明您需要仔细阅读错误消息,因为这不太可能是原因,因为它不会产生很少的内存。
有人知道吗?
如果它确实是错误发生的地方,那么真正的原因很可能在其他地方。要解决此问题,您需要对应用程序进行内存分析,或在 OOME 上进行堆转储或增加最大堆大小(或全部三个)
引发内存不足错误的点通常与使用大量内存的代码部分相去甚远。当垃圾收集器检测到内存问题时,它会被抛出,但这可能在另一个线程中,而不是消耗所有内存的线程。
如果您不知道问题出在哪里,最好的办法是运行分析器。
我认为你没有足够的 PermGen 空间分配。您可以尝试 -XX:PermSize=128M -XX:MaxPermSize=256M 作为应用程序的 java 命令行参数。
java.lang.OutOfMemoryError
当 Java 虚拟机因为内存不足而无法分配对象时抛出,并且垃圾收集器无法提供更多内存。
我认为这无关obj.getClass().getMethod(methodName, (Class[]) null);
请检查您的应用程序/程序内存不足的原因。