最新回答 / frgo_03360772
这个应该是运算符优先级的问题,"s1和s3内存地址相同吗?"+s1==s3正确的操作是System.out.println("s1和s3内存地址相同吗?"+(s1==s3));先判断s1==s3是真假,然后与前面的字符串拼接;如果后面的等式判断不加括号的话,会形成("s1和s3内存地址相同吗?"+s1)==(s3)的判断;前面的字符串与s1的拼接与后面的字符串s3肯定不是相同的,所以等式判断返回false-----
2016-06-22
最赞回答 / 哀幻暝
contains一定会涉及判断相等这一步现在请题主自己定义一下对象在什么情况下相等?如果对象里面有五个属性,题主可能会说:那就是五个属性都相等才相等啊嗯,这确实挺贴近“相等”这个词的含义的,然而sun公司的程序员不这么认为,严格来说,Map和List中的元素(对象)和题主你给contains方法传的参数肯定不是同一个对象所以他们永远不是绝对相等的,所以老师没有重写的时候会输出false而并不是所有的时候我们都需要这个对象里面所有的属性都相等才认为他们相等,往往只需要主键相等,学习了关系型数据库就明白什么是...