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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 谭辉 中级黑马   /  2013-3-12 12:27  /  955 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 谭辉 于 2013-3-12 18:34 编辑

String str1 = new String("str");
String str2 = new String("str");
System.out.println("==比较 "+str1==str2);
为什么前面的"==比较"输不出来

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1 新人鼓励一下~

查看全部评分

3 个回复

倒序浏览
public static void main(String []args){
        String str1 = new String("str");
        String str2 = new String("str");
        System.out.println("==比较 "+(str1==str2));//这下明白了吧,次序问题
        }

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
按照程序执行的优先级
你的System.out.println("==比较 "+str1==str2);
相当于是 System.out.println(("==比较 "+str1)==str2);
由于("==比较 "+str1)不等于str2
所以结果是false
改成System.out.println("==比较 "+(str1==str2));就好了

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
转换字符串的时候,只要将要转换的变量+“”就会变成字符串。
所以你这里“==比较”+str1  优先级比较高,直接将str1转换成了字符串。
几位的回答很详细,如果没有问题,请将帖子分类改成【已解决】。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马