java中String是由一个char数组实现(jdk1.9中是byte数组),而它的长度count是int类型,所以最大长度是2的32次方,也就是4G。
但是如果直接用
String str="abcd";
这样写。那么由于class文件规范中 COUSTANT_Utf8_info表是使用一个16位的无符号整数来记录字符串的长,又因为null用两个字节表示,所以其最大长度为2的16次方-2=65534
java中String是由一个char数组实现(jdk1.9中是byte数组),而它的长度count是int类型,所以最大长度是2的32次方,也就是4G。
但是如果直接用
String str="abcd";
这样写。那么由于class文件规范中 COUSTANT_Utf8_info表是使用一个16位的无符号整数来记录字符串的长,又因为null用两个字节表示,所以其最大长度为2的16次方-2=65534