A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 潘际昌 中级黑马   /  2013-11-24 11:02  /  1204 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. A."john" ! = "john"
  2. B."john".equals("john")
  3. C."john" = "john"
  4. D."john".equals(new Button("john"))
复制代码

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

4 个回复

倒序浏览
A."john"是==于"john"的,所以,false
B 字符串的equals方法复写了Object的equals方法,用来比较两个字符串内容是否相同。true
C 字符串一旦生成就没法改变,给一个字符串常量赋字符串,编译都过不了。
D是字符串和Button对象比,false

所以只有B是true

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
第一个是比较地址值,“john”第一次出现会在内存中弄一个地址停留一段时间,等着被调用。第二次出现就相当于指向那个地址。所以地址相同。
第二个是比较字符串内容,相等。是ture。
第三个就按1=3理解吧
第四个不懂。。。

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 山寨

查看全部评分

回复 使用道具 举报
第一个肯定为假,因为都是在在字符池中的字符串
第二个为真
第三个应该是为赋值动作吧,这个能成立么?
最后一个虽然new对象了,但比的东西仍然是同一个字符池中的,应该也还是真

评分

参与人数 1黑马币 +3 收起 理由
FFF + 3 第四个呢?

查看全部评分

回复 使用道具 举报
我觉得第三个应该是双等号吧? 如果真是双等号,那么,B和C就都是true了。

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 鼓励分~+1要努力哦

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马