下面是一个常见的Java 面试题:
聊聊:Java中String对象的大小?
首先,看看空String占用的空间

当前内存大小是在默认开启压缩指针的条件下
- 对象头 12
- char[]数组引用 4
- int 类型 hash数据大小 4
- loss due to the next object alignment 对齐填充 4
总结:24
再次,来看看String类中的成员变量。
/** The value is used for character storage. */
private final char value[];
/** Cache the hash code for the string */
private int hash; // Default to 0
/** use serialVersionUID from JDK 1.0.2 for interoperability */
private static final long serialVersionUID = -6849794470754667710L;
非空String占用的空间

当前内存大小是在默认开启压缩指针的条件下
- 对象头 12
- char[]数组引用 4
- int 类型 hash数据大小 4
- loss due to the next object alignment 对齐填充 4
总结:24
本文详细解析了Java中String对象占用的内存空间大小,包括空String和非空String的具体组成及所占空间,并提供了多个参考资料供深入学习。
1万+

被折叠的 条评论
为什么被折叠?



