字符串变量和数组变量类似,它并不存放字符串,不是字符串的所有者,它是字符串的管理者。
Java的字符串还是一种特殊的“不可变”对象,所有的字符串操作都是产生一个新的字符串,而不是对原来的字符串的修改。对这一点的理解颇为重要。
public class Test {
public static void main(String[] args){
String a=new String("abc");
String b=new String("abc");
System.out.println(a==b);
}
}
输出:false
public class Test {
public static void main(String[] args){
String a="abc";
String b="abc";
System.out.println(a==b);
}
}
输出:true
原因:前者字符串变量a和b分别指向不同的区域,后者字符串b指向了与a相同的区域。