java中,关于equals方法的研究理解

        equals()方法和“==”的区别这样一个问题在网上一搜一大片,回答水平也参差不齐。昨日笨猪特意去研究了一下这个问题。。。得出了以下见解:

       笨猪认为,equals()方法和“==”根本没有可比性,根本不存在什么异同。

       equals()是一个方法,而“==”是java运算符,怎么能把他们进行相比呢?

        

        基础知识1:“==”是为了比较两个引用是否引用了同一个对象

                  

          基础知识2:  obj1==obj2; 是对两个引用进行了对比。如果它们都指向同一个对象,或者同时为null。那么返回true,否则返回false。

       事情起源应该是这样的,Object类为了方便(面向对象也应该有对比的功能),搞出了equals()这么一个方法用于对象之间的比较(然而,设计者默认的把对象的这种对比法则定义为“==”)

 

     但是,具体到实际应用里,大家的需求往往就不一样了。

        例如:String类

                我们来看String类中equals方法的定义。

                  

        总结:

             1,Object类中的equals方法并没有用final关键字修饰,所以是允许广大程序猿进行重写的。

                2,equals方法和“==”既没有区别也没有联系,因为根本没有可比性。如果非要拉扯上关系的话,那                      就是Object中默认把equals方法的对比法则设置为“==”。

                3,个人认为String中完全可以不使用equals方法嘛,它已经内置了个boolean                                                          contentEquals(CharSequence cs)方法,我就觉得这个方法简单粗暴,也能解决实际问题大笑

                   

           最后,笨猪第一次在网上发技术帖,有不足之处请大家多多指教,多多包容。

                

猜你喜欢

转载自626688859.iteye.com/blog/2316597
今日推荐