Java运算符优先级-Operator Precedence for “+“ and “==“

实例一

        运算符 + 与运算符 == 的优先级比较

public class Test {
    public static void main(String[] args) {
        String s1 = "ok";
        String s2 = "ok";
        System.out.println("s1 == s2 is:" + s1 == s2);
    }
}

上面这段代码的执行结果为

false

因为 我们先执行的是

        "s1 == s2 is:" + s1这段逻辑使整个字符串变为"s1 == s2 is:ok"

        下一步"s1 == s2 is:ok" == s2即变为"s1 == s2 is:ok" == "ok"

由于 == 运算符在比较字符串时比较的是引用而不是内容,所以这个比较的结果会是 false。这个结果并不相等输出即为false

那么如何实现正确的比较呢

正确的写法应该是使用 equals 方法来比较字符串的内容:

System.out.println("s1 == s2 is:" + (s1.equals(s2)));

或者使用 == 运算符来比较引用:

System.out.println("s1 == s2 is:" + (s1 == s2));

由于 s1 和 s2 引用的是同一个字符串对象,所以 s1 == s2 的结果会是 true

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值