-
==:基本数据类型的话对比的是值是否相等,引用类型对比的是内存地址是否相等
-
.equals()默认情况下对比的也是内存地址(String方法对比的是值,应为String源码里面重写了equals方法)
-
*重点 equals是根类Obeject中的方法
-
如果想要对象对比值的话,类中就要重写equals方法
// .equals() 的源码 public boolean equals(Object anObject) { // 这里默认对比的是内存地址 2 if (this == anObject) { 3 return true; 4 } 5 if (anObject instanceof String) { 6 String anotherString = (String) anObject; 7 int n = value.length; 8 if (n == anotherString.value.length) { 9 char v1[] = value; 10 char v2[] = anotherString.value; 11 int i = 0; 12 while (n-- != 0) { 13 if (v1[i] != v2[i]) 14 return false; 15 i++; 16 } 17 return true; 18 } 19 } 20 return false; 21 }
JAVA面试必考,==和.equals()的区别
最新推荐文章于 2024-09-01 15:30:33 发布