我已在任何地方阅读JAXBContext.newInstance(SampleClass.class)
将加载SampleClass
并从中创建JAXBContext
对象。例如,上一个答案here也有博客。
但是当我遵循时,我没有看到课程被加载10000次。我使用SampleClass
未加载10000次的分析工具验证了这一点。
for (int i = 0; i < 10000; i++) {
JAXBContext jaxbContext = JAXBContext.newInstance(TestData.class);
jaxbContext.hashCode();
jaxbContext.toString();
jaxbContext.getClass();
}
我对JAXBContext.newInstance
的理解是错误的吗?
我知道如果一个类被JVM加载,那么它将不再被加载,但这是我在任何地方都读到的,使用JAXBContext.newInstance()
每次都会加载该类。
<小时/> 编辑:以下是来自jVisualVM的更多观察,我调用它~10000但仅发生了~200-300类加载,然后显示了174个类被卸载。