这些可以对楼主有所启发
String s="abc";
String s1=new Strng("abc");是否相同?
前者"abc"是一个对象。后者是两个对象,new string()代表一个对象,"abc"也代表一个对象。
Sop(s1==s2);==比较的是数据。false
Sop(s1.equals(s2));比较的是内存的地址值,equals覆写了Object类中的equals方法。
True
面试题2:
String a="abcd";//在缓冲池创建了一个abcd的字符串。
String a1="ab";//a1和a2都是变量,无法确定。
String a2="cd";
String b=a1+a2;//b是要重新进行分配的。
String c="ab"+"cd";//两个都是常量值,用连接符连接在一起还是字符创。abcd
System.out.println("a==b:"+(a==b));//false
System.out.println("a==c:"+(a==c));//true
|