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 对象仍存在,但是不能再访问它了。如下图所示:

java学习篇-2(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()之类的方法

相关文章: