JavaAPI详解系列(1):String类(1)

String代表一个不可变的字符序列,创建字符串对象的通常使用两种方式:一种使用Java语法内置的字符串字面常量如String s1=“abc”,另外一个是使用new运算符使用构造方法来创建字符串对象如String s2=new String(“abc”)。下面举例来演示String类的各方法的使用。

示例1:演示字符串比较。

packagestring.lang.java;

publicclassStringDemo1 {

publicstaticvoidmain(String[]args) {

Strings1="abc";

Strings2="abc";

Strings3=newString("abc");

Strings4="ab"+"c";

System.out.println("s1==s2结果是:"+(s1==s2));

System.out.println("s1==s3结果是:"+(s1==s3));

System.out.println("s1==s4结果是:"+(s1==s4));

}

}

运行的结果如下:

说明:

字符串的==运算符是引用比较。

s1,s2都指向存储是数据区的常量字符串池,故s1==s2的结果是true。

s3指向new运算符在堆区创建的新字符串,故s1==s3的结果是false。

表示达式"ab"+"c"在编译时优化为"abc",在运行时查找字符串池中是否存在相同字符串字面常量, 若有则不在创建新对象,故s4仍然和s1,s2一样指向已有字符串常量。

你可能感兴趣的:(JavaAPI详解系列(1):String类(1))