首先说一下相同点:
两个方法都是用来做比较,并且比较的结果都是布尔值.
然后在说一下不同点:
对于 == 来说,对于基本数据类型的比较是比较二者的值是否相等,对于引用类型比较的是地址值是否相等.
equals()方法只能比较引用数据类型,在没有重写的情况下比较的是二者的地址值是否相等,(底层依赖的是 == 号)
对于String,Inreger等包装类都重写了equals()方法,比较的是内容是否相同.
这里需要特别注意的是,对于String类对象的比较一定不能用 == 方法,因为此方法比较是String对象的时候是比较的地址值是否相等,而实际的情况完全有可能两个不同的对象的值相等.具体效果如下图:
两个方法都是用来做比较,并且比较的结果都是布尔值.
然后在说一下不同点:
对于 == 来说,对于基本数据类型的比较是比较二者的值是否相等,对于引用类型比较的是地址值是否相等.
equals()方法只能比较引用数据类型,在没有重写的情况下比较的是二者的地址值是否相等,(底层依赖的是 == 号)
对于String,Inreger等包装类都重写了equals()方法,比较的是内容是否相同.
这里需要特别注意的是,对于String类对象的比较一定不能用 == 方法,因为此方法比较是String对象的时候是比较的地址值是否相等,而实际的情况完全有可能两个不同的对象的值相等.具体效果如下图: