Java中equals和==的区别
#Java中equals和==的区别 区别1:equals是方法,==是比较运算符; 区别2:基本数据类型比较时,只能用==,比较的是值是否相等; 区别3:引用数据类型比较时,==比较的是引用地址是否相等,而equals对于引用数据类型的比较,分两种情况: 情况1:引用数据类型没有对equals进行重写,则比较的是引用地址,因为所有引用数据类型均继承自Object,而Object的equals方法返回的是==比较结果,如下: 情况2:引用数据类型对equals方法进行了重写,则进行值比较。例如String对equals的重写如下: |
<<<PS:Java中基本数据类型和引用数据类型区别 https://blog.****.net/JustinQin/article/details/90480683
<<<附:equals和==区别常见笔试
#例1 String s1 = "abc"; String s2 = s1; String s3 = new String("abc") ; String s4= new String("abc") ;
System out.println(s1==s2); System out.println(s1.equals(s2)); System out.println(s1==s3); System out.println(s3.equals(s4)); System out.println(s3==s4); 输出答案: true true false true false |
#例2 String s1 = "a" + "b"; String s2 = "ab"; System out.println(s1==s2) 输出答案: true 两个或多个字符串常量相加,预编译的时候,“+”号会被优化,多个字符串自动会合成一个字符串常量; |