java byte转string乱码 byte数组转字符串java

一、String基础1、创建字符串方式

  1. String test = “abc”;
  2. String test = new String(“abc”);
2、String类是不可变的
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
java byte转string乱码 byte数组转字符串java

文章插图
其中u1、u2是无符号的分别代表1个字节和2个字节,那么我们只需要看length最多允许两个字节的长度,因此理论上允许的的最大长度是2^16=65536 。而 java class 文件是使用一种变体UTF-8格式来存放字符的,null 值使用两个 字节来表示,因此只剩下 65536- 2 = 65534个字节 。
【java byte转string乱码 byte数组转字符串java】所以,在Java中,所有需要保存在常量池中的数据,长度最大不能超过65535,这当然也包括字符串的定义 。
运行期
上面提到的这种String长度的限制是编译期的限制,也就是使用String str= “”;这种字面值方式定义的时候才会有的限制 。
String在运行期的限制,其实就是我们前文提到的那个Integer.MAX_VALUE,这个值约等于4G,在运行期,如果String的长度超过这个范围,就会抛出异常 。

    推荐阅读