java - 新对象是从 eden 空间分配的还是 eden + fromSurvivor 空间分配的?

标签 java memory-management heap-memory

新对象是从 eden 空间还是 eden + fromSurvivor 空间分配的? 幸存者空间中的可用空间也可以用于分配给新对象吗?

编辑: 考虑以下场景: 假设Eden空间已满并且来自幸存者空间的占用较少,那么在这种情况下,如果创建新对象(新对象足够小以适合来自幸存者空间),那么将发生次要收集或者将从中分配新对象的空间来自幸存者空间?

最佳答案

我相信eden空间总是用于小对象,非常大的对象直接在旧空间中分配。如果在幸存者空间中分配新对象,则有点破坏拥有单独空间的意义。

参见this PDF了解更多详细信息,包括:

Most objects are initially allocated in Eden. (As mentioned, a few large objects may be allocated directly in the old generation.)

关于java - 新对象是从 eden 空间分配的还是 eden + fromSurvivor 空间分配的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3797007/

相关文章:

java - 如何将某些语言单词的十六进制值恢复为 UTF-8

java - 如何在 mybatis_dynamic_sql 中为 TO_CHAR(USE_BY_DATE - ? ,'YYYYMMDD' ) >=TRUNC(SYSDATE) 创建查询

java - 从 JSF 中的表单中排除字段

ios - 如何声明弱通知

通过引用传递的 MATLAB 函数

linux - 内核虚拟地址空间中的高内存映射

c++ - 将 C++ vector 作为成员放入使用内存池的类中

c++ - 处理破坏堆的对象

java - java类加载器的准备阶段和初始化阶段

java - Mockito 在简单测试中抛出 OutOfMemoryError