为了账号安全,请及时绑定邮箱和手机立即绑定

java基础问题,求解

java基础问题,求解

慕粉1619303102 2017-05-13 13:41:33
System.out.println("ab"=="a"+"b")输出为什么是false
查看完整描述

2 回答

?
你瞅啥_嗯哼

TA贡献3条经验 获得超2个赞

输出怎么是false呢,这个结果应该是true的。String不是基本类型数据,所以不建议用==来比较两个字符串是否相等。可以百度一下==和equals的区别

查看完整回答
2 反对 回复 2017-05-13
已采纳
?
zhouhaojie

TA贡献4条经验 获得超0个赞

“ab”在内存里面有一个内存地址,如0x887fd ;
 而“a” 或“b”它也有自己的各自的内存地址。那么当“a”+“b” 操作的时候,是生成一个新的内存对象。内存地址肯定也是不一样的。
因此用 == 来比较对象的内存引用,是false。 如果你要比较对象的值,用equals


查看完整回答
反对 回复 2017-05-13
?
蜂之谷

TA贡献564条经验 获得超863个赞

字符串比较用 equals

查看完整回答
1 反对 回复 2017-05-13
?
屋小维

TA贡献3条经验 获得超1个赞

String是引用数据类型,所以"ab"是一个对象,"a"+"b"是另一个对象。==比较的是对象地址值,所以不相等,为false

查看完整回答
反对 回复 2017-05-13
?
谜之米

TA贡献8条经验 获得超5个赞

字符串 是一个引用 只代表内存地址。==比较的是两个内存地址是否相等。而要比较两个字符串内容是否相等 要用 (字符串a).equals(字符串b)

查看完整回答
反对 回复 2017-05-13
  • 2 回答
  • 0 关注
  • 2906 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信