java中的equals与==的区分
“==” 比较的是两个援用在内存中指向的是不是是统一对象(即统一内存空间),也就是说在内存空间中的存储位置是不是一致。
equals,经常使用的是对象内里的内容是不是相称
equals要领是由Object类供应的,能够由子类来举行重写(引荐教程:java教程)
public boolean equals(Object obj) { return (this == obj); }
默许的完成只有当对象和本身举行比较时才会返回true, 这个时刻和 “==”是等价的。
Java中许多类(String类 Date类 File类)等都对equals要领举行了重写,这里拿罕见的String类举例。
public class Test { public static void main(String[] args) { String num1= "abc"; String num2= "abc"; System.out.println(num1==num2);//true String num3 = new String("abc"); String num4= new String ("abc"); System.out.println(num3==mnum4);//false System.out.println(num3.equals(num4));//true } }
Java 言语里的 equals要领实际上是交给开发者去覆写的,让开发者本身去定义满足什么前提的两个Object是equal的。
即是说是equals要领和"=="完整一样;然则equals要领能够重写;"=="的话,如果是值范例则比较值是不是相称;如果是援用范例则推断对象地点是不是相称。
以上就是java中的equals与==的区分的细致内容,更多请关注ki4网别的相干文章!