String(java.lang.String)
特点
-
字符串不变:字符串的值在创建后不能被更改。
String s1 = "abc"; s1 += "d"; System.out.println(s1); // "abcd" // 内存中有"abc","abcd"两个对象,s1从指向"abc",改变指向,指向了"abcd"。
-
因为String对象是不可变的,所以它们可以被共享。
String s1 = "abc"; String s2 = "abc"; // 内存中只有一个"abc"对象被创建,同时被s1和s2共享。
-
“abc” 等效于 char[] data={ ‘a’ , ‘b’ , ‘c’ } 。
例如: String str = "abc";
相当于: char data[] = {
'a', 'b', 'c'};
String str = new String(data); // String底层是靠字符数组实现的。
// 无参构造
String str = new String();
// 通过字符数组构造
char chars[] = {
'a', 'b', 'c'};
String str2 = new String(chars); // abc
// 通过字节数组构造
byte bytes[] = {
97, 98, 99 };
String str3 = new String(bytes);// abc