【概念解析一】两种比较方法的区别:== 和 equals

来源:互联网 发布:网络流行文化有哪些 编辑:程序博客网 时间:2024/06/05 08:52

其实,equals方法和==的区别,面试也经常考,equals方法是父类Object所定义的方法,用来实现两个对象内容是否相等的逻辑,说equals方法要从两个方面:

1)从Object角度来说,==与equals是一样的,都是比较引用,因为Object类的equals()方法这样定义的, public boolean equals(Object obj) { return (this == obj); }方法内部的实现就是比较引用地址,用的也是==号,所以对于Object来讲,equals与==是一样的。

在基本数据类型中(也称原始数据类型),如:byte,short,char,int,long,float,double,boolean 等,他们之间应用双等号(==)进行比较时,比较的是他们的值。

例如:String s1="abc";
String s2="abc";
程序在运行的时候会创建一个字符串缓冲池当使用 s2 = "Monday" 这样的表达是创建字符串的时候,程序首先会在这个String缓冲池中寻找相同值的对象,在第一个程序中,s1先被放到了池中,所以在s2被创建的时候,程序找到了具有相同值的 s1
将s2引用s1所引用的对象"Monday"

2)对于其它类来说,可以根据需要,在自定义的类中重写(Override) equals方法,实现内容是否相等的逻辑,因为String类重写了equals方法,所以我们才说String的equals比较的是两个字符串的内容。

0 0
原创粉丝点击