JAVA String的最大长度原理
首先字符串是存放在class文件常量池的CONSTANT_utf8_info表中,看一看CONSTANT_utf8_info的表结构:
table CONSTANT_utf8_info{
u1 tag;
u2 length;
u1[] type
}
u1是无符号数,表示1个字节的无符号数
u2是无符号数,表示2个字节的无符号数
tag值为1,表示常量池中表的类型
length是表示u1[]的长度,因此两个字节的无符号数最大值2^16 = 65536,
但是还需要用2个字节来存储null,因此String字符串的最大长度为65534