java字符串长度怎么算 对string常量的字符串长度有没有限制?

对string常量的字符串长度有没有限制?字符串以字符数组的形式存储。如果数组的长度为int类型,则字符串的最大允许长度为Integer.MAX价值观。因为Java中的字符存储在16位中,所以存储最大

对string常量的字符串长度有没有限制?

字符串以字符数组的形式存储。如果数组的长度为int类型,则字符串的最大允许长度为Integer.MAX价值观。因为Java中的字符存储在16位中,所以存储最大长度的字符串需要大约4GB的内存。但是,这仅适用于字符串变量。如果是用代码编写的字符串文字,如“ABC”和“1a2b”,则允许的最大长度取决于该字符串在常量池中的存储大小,即该字符串在类格式文件Utf8中的存储格式。理论上,字符串文字的最大长度为2^16-1=65535。然而,实际测试表明,允许的最大长度只有65534,这是一个编译错误