根据 String 源码:
因此,理论上 String 变量长度限制为 int 类型的最大值,即 Integer.MAX_VALUE = 2^31 - 1 = 2147483647,约等于 2G。
注:实际还和 java 堆内存大小有关。
二、Java String 常量长度限制而在 Java 中,由于字符串常量池的存在,String 常量长度限制取决于 String 常量在常量池中的存储大小。
字符串在 class 文件中的存储格式为:
CONSTANT_Utf8_info {
u1 tag;
u2 length;
u1 bytes[length];
}
未完待续。。。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)