[求助]“==”的问题
public class Test{public static void main(String[ ] args){
String s = new String("hello");
String ss="hello";
System.out.println(s=="hello");
System.out.println(ss=="hello");
}
}
为什么这两个结果不一样?我觉得2个应该都是false,为什么第2个是true呢 ?希望能解释清楚点..
搜索更多相关的解决方案:
public
----------------解决方案--------------------------------------------------------
一个是字符串常量,一个是字符串
一个是放在栈的常量池里面,一个是放在堆里面
----------------解决方案--------------------------------------------------------
我是初学者哇..能清楚一点么 。。。
----------------解决方案--------------------------------------------------------
呵呵,如果是初学者的话,那就可以先放一放这个,往后面学了
简单地可以说一下,==它表较的对象的地址是不是同一个
而equals却可以自己定义相等的规则
----------------解决方案--------------------------------------------------------
哦?学到了.
----------------解决方案--------------------------------------------------------
有点明白 ,谢谢啦 我再去看看书
----------------解决方案--------------------------------------------------------
bz解释清楚点啊,我也不太理解啊,不是两个都是比较地址吗?
----------------解决方案--------------------------------------------------------
==是比较地址
equals可以自己定义,每类定义的不一样,默认的Object的定义就是==的意思
----------------解决方案--------------------------------------------------------
好像还没有明白,上面根本没有出现equals,两个都是"=="嘛
----------------解决方案--------------------------------------------------------
i think i have got it,thanks bz!!
----------------解决方案--------------------------------------------------------