为什么有 10 个预生成的 OutOfMemoryError 实例?

Why there are 10 pregenerated OutOfMemoryError instances?

我查看了简单的 java 应用程序堆转储。我知道 OutOfMemoryError 对象是在应用程序启动时创建的。但是我在堆转储中发现了十个 OutOfMemoryError class 实例。为什么我们需要不止一个?

很可能是因为创建 OutOfMemoryError 会占用内存,如果您没有剩余内存,则无法在需要时创建它。

为什么是10,可能是消息或堆栈跟踪不同,或者它们可以合并但没有合并。