直接上代码,方便大家理解
String a = new String("abcd");
String b = new String("abcd");
String c = "abcd";
String d = "abcd";
System.out.println(a==b);//比较地址,false
System.out.println(c==d);//比较地址,c和d指向同一个地址,就是“abcd”这个对象的地址,true
System.out.println(a.equals(b));//比较内容,true
System.out.println(c.equals(d));//比较内容,true
System.out.println(a==c);//比较地址,false
System.out.println(a.equals(c));//比较内容,equals始终比较的是地址,true
==比较的是地址,而equals比较的是内容。
但是有一点需要明确的是,利用equals比较八大包装对象和String类(因为该类已重写了equals和hashcode方法)对象时,默认比较的是值,在比较其它对象都是比较的引用地址。
© 著作权归作者所有
相关热门文章
发表评论