public
class
Test1 {
public
static
void
main(String[] args) {
String s1 =
"ab"
+
"c"
;
String s2 =
"abc"
;
System.out.println(s1 == s2 +
" : "
+ s1.equals(s2));
}
}
输出的结果是什么呢?
true:false 因为"ab"+"c"都是常量,所以s1指向常量池中的"abc",所以s1==s2是true
哈哈,这样想是不对的!
其实正确答案是false,只有一个fasle
根本就没想到竟然==的优先比+的优先级小,所以先进行s2 +
" : "
+ s1.equals(s2)
,然后判断==
所以很明显就是false了
编程也和做题一样,处处都是套路啊,所以一定要细心