'OutOfMemoryError':通常,当没有足够的空间来分配Java堆中的对象时,会抛出此错误.
GC(分配失败):分配失败"意味着分配请求大于年轻代中的可用空间.
这是否意味着当Young Generation内存已满(Minor GC)并且在完整GC中抛出"OutOfMemoryError"时,将抛出分配失败?
据我所知,这些可能会变得相关; 但它们完全不同.
OutOfMemory 是一个无法恢复的错误 - JVM将在此时死亡.
GC (Allocation Failure): Allocation Failure这就是为什么GC会开始(并做一个小的收集)的原因.此时可能会发生一些事情,例如:释放足够的空间以使新分配适应young generation.或者没有发生,一些对象将被提升为old generation.如果can't be promoted一个full GC可能被触发-如果这不能释放足够的空间OutOfMemory 可能会被抛出.