20 java问题

【手机】 java问题

--------------------------------------------

傻大方资讯为您精选的网友回复(供您参考):

[编程]请见图片,两个对象内存地址一样为何“==”得到的是false?

--------------------------------------------

20

傻大方资讯为您精选的网友回复(供您参考):

[编程]很好理解阿。他们是同一个对象。这样理解 aaa 和 bbb 里面的 toString 函数,他们都是另外生成了字符串并输出,地址已经不一样了class bbb {    String toString() {         String re = new String( this.name + "@" + this.hashCode() );         return re;     }}

--------------------------------------------

傻大方资讯为您精选的网友回复(供您参考):

[编程]举一个简单的例子bbb是人,a是人的名字,b也是人的名字,a和b长得一样,但是a和b是两个人。我就是这样理解的,bbb()是一个对象,人也可以看成一个对象。可能这就是面向对象思想吧。名字看成内存地址,属性就是对象的特征。

--------------------------------------------

傻大方资讯为您精选的网友回复(供您参考):

[编程]==号对比的是两个对象的内存地址,equals对比的是两个对象的值,每个对象都只有一个唯一的内存地址,

--------------------------------------------

傻大方资讯为您精选的网友回复(供您参考):

[编程]a和b的内存地址是一样的,但a.toString()和b.toString()的内存地址不一样。1.下面返回应该是trueSystem.out.println(a==b);2.而System.out.println(a.toString()==b.toString());相当于:String c = a.toString();String d = b.toString();System.out.println(c==d);应该返回false

--------------------------------------------