java吧 关注:1,189,998贴子:12,600,529

"=="与"Equals"在java中哪个比较的是内存地址?

只看楼主收藏回复

教员说在C#中两个是等价的,记得学java时一个表示比较值是否相等,另一个表示比较内存地址是否相同,现在又分不清哪个是比较值,哪个是比较内存地址了,怎么办


IP属地:上海来自Android客户端1楼2013-12-10 17:34回复
    ==


    2楼2013-12-10 17:46
    收起回复
      ==


      IP属地:湖南3楼2013-12-10 17:53
      收起回复
        你猜


        来自Android客户端4楼2013-12-10 17:58
        收起回复
          ==比较的是内容equals比较的是否是同一个对象


          来自手机贴吧5楼2013-12-10 17:59
          收起回复
            ==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。
            equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相同。


            IP属地:上海来自Android客户端6楼2013-12-10 18:08
            收起回复
              你猜


              IP属地:北京7楼2013-12-10 18:09
              收起回复
                默认情况下两个都是,但是equals方法可以在子类中重写而已.
                我表示所谓的"一个比较地址,一个比较内容"之类的说法全部都是误人子弟


                IP属地:福建8楼2013-12-10 19:03
                收起回复
                  自己要多动手,这玩意自己编一下印象要比问别人深的多。


                  IP属地:江西9楼2013-12-10 19:04
                  收起回复
                    只有String对象的equals()方法和‘==’不一样 ,因为String重写啦equals()方法
                    其他对象如果没有重写equals()方法 则效果一样


                    IP属地:湖北10楼2013-12-10 19:27
                    收起回复
                      比较地址


                      IP属地:湖北11楼2013-12-10 19:28
                      回复
                        我不会告诉你其实这是一样的,而且 == 是运算符,equals是方法,如果不特指String或者重写equals方法


                        IP属地:广东12楼2013-12-10 19:42
                        收起回复
                          ==完全相等,equals就像比较长得一模一样的两个人,相貌一样对象不一样。虽然不是完全正确但这样理解就很容易记住了。


                          IP属地:江西来自Android客户端13楼2013-12-10 19:45
                          收起回复
                            ==这个是比较的堆内存,equals比较的是栈内存。就是堆内存中的对象所指向的栈内存。


                            14楼2013-12-10 19:57
                            收起回复
                              大家好,我是JAVA吧第一水。


                              IP属地:上海15楼2013-12-10 19:58
                              收起回复