String类
1. String 的本质是什么?
char类型的数组
/** The value is used for character storage. */
private final char value[];
示例:
String name = "ZhangYuxuan";
//本质 就是 private final char[] value = {'Z','h','a','n','g','Y','u','x','u','a','n'};
由于 char 数组常量,所以该字符串不能改变,即字符串是常量
2. String 是字符串常量
public class StringDemo {
public static void main(String[] args) {
String stuName = new String("张宇轩");
String name ="张宇轩";
name = "ZhangYuxuan"; // private final char[] value = {'Z','h','a','n','g','Y','u','x','u','a','n'};
name ="小张";
String s1 = "hello";
String s2 = "hello";
String s3 = new String("hello");
s1 ="good";
}
}
String s = new String("ok"); 创建了几个字符串"hello"对象?
可能创建一个“hello”,也可能是两个
-
由于字符串是常量,所以字符串String变量不能用于值经常发生改变的时候
-
若String变量值经常发生改变,在字符串常量池会出现很多中间字符串,导致大量内存浪费