黑马程序员技术交流社区

标题: 请看问题 [打印本页]

作者: 谭辉    时间: 2013-3-12 12:27
标题: 请看问题
本帖最后由 谭辉 于 2013-3-12 18:34 编辑

String str1 = new String("str");
String str2 = new String("str");
System.out.println("==比较 "+str1==str2);
为什么前面的"==比较"输不出来
作者: 张卫刚    时间: 2013-3-12 12:44
public static void main(String []args){
        String str1 = new String("str");
        String str2 = new String("str");
        System.out.println("==比较 "+(str1==str2));//这下明白了吧,次序问题
        }
作者: HM李帅    时间: 2013-3-12 12:50
按照程序执行的优先级
你的System.out.println("==比较 "+str1==str2);
相当于是 System.out.println(("==比较 "+str1)==str2);
由于("==比较 "+str1)不等于str2
所以结果是false
改成System.out.println("==比较 "+(str1==str2));就好了
作者: 陈丽莉    时间: 2013-3-12 13:40
转换字符串的时候,只要将要转换的变量+“”就会变成字符串。
所以你这里“==比较”+str1  优先级比较高,直接将str1转换成了字符串。
几位的回答很详细,如果没有问题,请将帖子分类改成【已解决】。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2