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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

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

评分

参与人数 1技术分 +1 黑马币 +3 收起 理由
狼王 + 1 + 3 继续加油哈

查看全部评分

6 个回复

倒序浏览
第二个吧
回复 使用道具 举报
本帖最后由 樊志伟 于 2013-11-24 11:36 编辑

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

所以只有B是true

【@各位版主,求加技术分呐】

评分

参与人数 1黑马币 +5 收起 理由
枫儿 + 5 继续加油~

查看全部评分

回复 使用道具 举报
只有B是正确的,A中以同一个对象(在字符串常量池中),C要改成==,=是赋值用的,不是逻辑表达式,D中存储位置不一样
回复 使用道具 举报
B是正确的,
D比较的类型都不一样 String 和BUtton怎么匹配啊
A !=改成== 会是true
C 是赋值语句,左边应该是变量,编译都不会通过
回复 使用道具 举报
B
第一个:两个字符串是相等的,因为他们的内存地址是一样的
第三个:用=号是错误,java中“=”是用于赋值的,将右边的值赋予给左边,起码左边一定要是变量,而且就算是赋值成功,也不可能是true
第四个:new Button(“”);是新建按钮的方法,如果你是用new String("")的话,那答案就是true了,因为.equals比较的是实际值,如果用"john" == new String("john")那就是false,因为new String("")就已经新建了一个对象,而“john”只是一个字符常量

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 继续加油~

查看全部评分

回复 使用道具 举报
A C D都是比的对象,所以都是错误的,只有B中equals比的是在内存中的内容,所以B是正确的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马