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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© william_J 中级黑马   /  2014-11-24 22:01  /  868 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

String s1 = "a";
String s2 = "b"
String s3 = "ab"
然后:
s3==(s1+s2)是false,为什么?
"a"+"b" = "ab"是true。

评分

参与人数 1黑马币 +3 收起 理由
杨佳名 + 3 淡定

查看全部评分

4 个回复

倒序浏览
==,比较的是地址值,=,比较的是具体值
回复 使用道具 举报
String s1 = "a";//s1是一个类类型的变量,“a”代表一个对象
你用等号连接后s1 在内存中就指向“a"
s2指向“b”
s3指向“ab”
他们代表3个不同的对象,当然地址值不一样,是不能用而==是比较地址值,所以不相等
回复 使用道具 举报
回复 使用道具 举报
s3==(s1+s2)   这里进行的是s3的地址值和(s1+s2)的地址值的比较,2个对象的地址值肯定不相同
"a"+"b" = "ab" 这里相当于是“ab”= ‘'ab'' 肯定是true了~~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马