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

String 类型有点头痛,为什么输出false?

String 类型有点头痛,为什么输出false?

旧时光的稻草 2016-07-17 17:22:41
String s1=“a”;String s2=s1+"b";System.out.println(s2=="ab");
查看完整描述

2 回答

已采纳
?
高恒博

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

==是比较对象的引用位置,

String s1=“a”;

String s2=s1+"b";

你这两句实际创建了两个对象(基本数据类型只创建一个),输出true的话,建议equal方法

查看完整回答
1 反对 回复 2016-07-17
?
小城阿哥

TA贡献89条经验 获得超59个赞

1.
String s1="a";
String s2=s1+"b";
System.out.println(s2=="ab");  //输入 false
2.
String s2="a"+"b";
System.out.println(s2=="ab");   //输出为true

首先要知道  ==是计较 是否是同一个对象   在 1 中  涉及到变量运算    得到字符串对象会保存在各自的内存中,不会在缓冲池中查找,所以==两边指向不同对象    2 中不涉及变量   则==指向同一个对象  

查看完整回答
反对 回复 2016-07-17
  • 2 回答
  • 0 关注
  • 1491 浏览

添加回答

举报

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