string 定义字符串的时候有很多限制
- String类中有很多重载的构造函数,其中有几个是支持用户传入length来执行长度的:
public String(byte bytes[], int offset, int length) (但是非int类型的最大长度) - 常量池限制:
CONSTANT_String_info 用于表示 java.lang.String 类型的常量对象
也就是说,Class文件中常量池的格式规定了,其字符串常量的长度不能超过65535。
字符串有长度限制,在编译期,要求字符串常量池中的常量不能超过65535,并且在javac执行过程中控制了最大值为65534。在运行期,长度不能超过Int的范围,否则会抛异常。