Java sun.reflect.GeneratedSerializationConstructor类如何生成
为了打印web应用程序的GC日志,在tomcat启动之前,添加以下参数:Java sun.reflect.GeneratedSerializationConstructor类如何生成,java,tomcat,garbage-collection,Java,Tomcat,Garbage Collection,为了打印web应用程序的GC日志,在tomcat启动之前,添加以下参数: -Xms256m -Xmx512m -XX:PermSize=128M -XX:MaxPermSize=512M -Xloggc:D:/TomcatGc.log 但是,以下信息连续打印在终端上 [Unloading class sun.reflect.GeneratedSerializationConstructorAccessor339] [Unloading class sun.reflect.Generate
-Xms256m
-Xmx512m
-XX:PermSize=128M
-XX:MaxPermSize=512M
-Xloggc:D:/TomcatGc.log
但是,以下信息连续打印在终端上
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor339]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor336]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor341]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor342]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor340]
我的问题是:
GC
正试图通过卸载未使用的对象来释放一些内存,这就是为什么您会看到卸载类sun.reflect.GeneratedSerializationConstructorAccessor
更多信息@pXL已经回答了您的第一个问题,但是:
防止这样做既没有意义,也会适得其反。不同类型的访问者 方法访问器和构造函数访问器是本机的或生成的。这意味着我们要么对方法使用NativeMethodAccessorMPL或GeneratedMethodAccessor,要么对构造函数使用NativeConstructorAccessorMPL和GeneratedConstructorAccessor。 访问器将是本机的或生成的,由两个系统属性控制和决定:
更多细节可以在原始的中找到,谢谢你的回答。我已经认识到我犯了一个愚蠢的错误。谢谢你的回答。但我还有一个问题。如果堆空间不足,为什么JVM不抛出OutOfMemoryError:Java堆空间异常。@Felix它将抛出OutOfMemoryError,但是,首先它会尝试通过删除未使用的对象来清理堆,如果堆中的所有对象都在使用,并且GC无法为新对象找到可用空间,那么它确实会抛出OfMemoryError再次感谢您的回答。