Java的 & 和 && ,以及 | 和 || 的实例分析(原理+例子)

本文详细分析了Java中逻辑运算符&、&&、|和||的用法。&&和||具有短路特性,当第一个表达式能确定整个表达式的结果时,不会执行后续表达式。而&和|在逻辑运算中不论前一个表达式的结果如何,都会执行后续表达式。在实际编程中,理解这些差异对于避免空指针异常等错误至关重要。

一、且或真假关系表

先了解且或真假关系表的逻辑才能更深入的了解Java中的与或逻辑!

真假关系表

二、Java中的& 和 &&关系解析

相同点:
& 和 &&都可做逻辑与的运算符,表示逻辑与(and),两边都为true时,整个运算结果才为true

不同点:
&&具有短路功能,第一个表达式为false时,不再执行第二个表达式;
&可做位运算符,当做逻辑与运算符时,不管第一个表达式是false还是true,都会执行第二个表达式。

1、&&的解析

&&

以上的两个表达式,第一个表达式是false,第二个会报ArithmeticException异常,但是程序没执行第二个表达式。
总结: &&具有短路功能!!

2、&的解析

&

以上的两个表达式,第一个表达式是false,第二个会报ArithmeticException异常,但是程序依旧执行了第二个表达式,所以直接报了异常。
总结: &没有短路功能,对所有表达式都会执行!!

三、Java中的 | 和 || 关系解析

相同点:
| 和 || 都做逻辑或的运算符,表示逻辑与(or)

不同点:
|| 具有短路功能,第一个表达式为true时,不再执行第二个表达式;
| 没有短路功能,对于表达式全部执行。

1、|| 的解析

||

以上的两个表达式,第一个表达式是true,第二个会报ArithmeticException异常,但是程序没执行第二个表达式。
总结: || 具有短路功能!!

2、| 的解析

|

以上的两个表达式,第一个表达式是true,第二个会报ArithmeticException异常,但是程序依旧执行了第二个表达式,所以直接报了异常。
总结: | 没有短路功能,对所有表达式都会执行!!

四、总结

&& 和 || 都具有短路功能;
& 和 | 没有短路功能,对于表达式都会全部执行。

热心提示:在程序实现的过程中,一定要注意这些逻辑关系,特别是判空的时候,不然容易引起空指针异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值