String s1=new String( ” xyz ” );
String s2=new String( ” xyz ” );
Boolean b1=s1.equals(s2);
Boolean b2=(s1==s2);
System .out.print(b1 ” ” +b2);
输出为 true false
要点:
String a = “a”;
定义a指向的是字符串常量区变量,变量名不同,其地址是一样的,可用equals和==进行比较,结果为true。
1、==比较的是引用,即地址,equal比较的是值
2、都new时,=的比较结果一定为false,equal的结果看值
String a =new String( “a”);
定义了变量名为a的堆内存对象,不同变量名的堆内存之间进行比较只能equals,不能==
解题:
**Boolean b2=(s1==s2);//比较s1和s2两个对象的存储地址是否相等,明显两者分别存储在不同的地址,所以返回:false。