黑马程序员技术交流社区

标题: 到底哪个是true [打印本页]

作者: 潘际昌    时间: 2013-11-24 11:02
标题: 到底哪个是true
  1. A."john" ! = "john"
  2. B."john".equals("john")
  3. C."john" = "john"
  4. D."john".equals(new Button("john"))
复制代码

作者: 樊志伟    时间: 2013-11-24 11:18
A."john"是==于"john"的,所以,false
B 字符串的equals方法复写了Object的equals方法,用来比较两个字符串内容是否相同。true
C 字符串一旦生成就没法改变,给一个字符串常量赋字符串,编译都过不了。
D是字符串和Button对象比,false

所以只有B是true

作者: 忘记了    时间: 2013-11-24 12:40
第一个是比较地址值,“john”第一次出现会在内存中弄一个地址停留一段时间,等着被调用。第二次出现就相当于指向那个地址。所以地址相同。
第二个是比较字符串内容,相等。是ture。
第三个就按1=3理解吧
第四个不懂。。。
作者: 王雷1    时间: 2013-11-24 14:50
第一个肯定为假,因为都是在在字符池中的字符串
第二个为真
第三个应该是为赋值动作吧,这个能成立么?
最后一个虽然new对象了,但比的东西仍然是同一个字符池中的,应该也还是真
作者: 卢泽    时间: 2013-11-24 15:09
我觉得第三个应该是双等号吧? 如果真是双等号,那么,B和C就都是true了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2