String 类
创建方式
1、 String str1 = new String("Hello");
2、String str2 = "Hello";
3、
char[] Array = {'H','e','l','l','o'};
String str3 = new String(Array);
- String 变量存储的是对 String 对象的引用,String 对象里存储的才是字符串的值。
不可变字符串
- String 对象是不可变的,它的内容是不能改变的
String s = "Java";
s = "HTML";
上述代码执行的实质是创建了一个新的 String 对象,存储"HTML",然后将引用赋给 s,第一个 String 对象仍存在,但是不能再访问它了。如下图所示:
字符串的比较
String s1 = "Welcome to Java";
String s2 = new String("Welcom to Java");
String s3 = "Welcom to Java";
System.out.println("s1 == s2 is " + (s1 == s2));
System.out.println("s1 == s3 is " + (s1 == s3));
结果是s1 == s2 is false,而s1 == s3 is false
- 以方式一构造的 String 对象的值保存在字符串常量池中,s1 和 s3 都指向这个常量池。
- 以方式二构造的 String 对象的值保存在堆中,s2就指向堆中。
- '=='方式是用来比较两者指向的对象是否是同一个,而不是用来比较值的。
比较字符串的值可以使用 equals(),compareTo()之类的方法