练习的14行这样写为什么是直接输出的false?

来源:2-2 Java 中字符串的不变性

qq_90後丨双子座_03454202

2016-06-22 00:44

System.out.println("s1和s3内存地址相同吗?"+s1==s3);


写回答 关注

1回答

  • frgo_03360772
    2016-06-22 01:41:45

    这个应该是运算符优先级的问题,

    "s1和s3内存地址相同吗?"+s1==s3

    正确的操作是System.out.println("s1和s3内存地址相同吗?"+(s1==s3));先判断s1==s3是真假,然后与前面的字符串拼接;

    如果后面的等式判断不加括号的话,会形成("s1和s3内存地址相同吗?"+s1)==(s3)的判断;前面的字符串与s1的拼接与后面的字符串s3肯定不是相同的,所以等式判断返回false-----


    qq_天大小...

    兄弟 你看清楚了吗

    2016-07-13 17:41:48

    共 1 条回复 >

Java入门第三季

Java中你必须懂得常用技能,不容错过的精彩,快来加入吧

409792 学习 · 4340 问题

查看课程

相似问题