首页 > 其他 > 详细

Java中&与&&的区别

时间:2014-01-17 08:52:04      阅读:321      评论:0      收藏:0      [点我收藏+]

以前在C的学习中,曾认为&和&&的区别在于:前者是位运算符,后者是逻辑运算符。

在Java中,这个问题不能这么简单的来看。

&和&&都是可以作为逻辑运算符的,其逻辑运算规则是相同的。

a:true b:true a&b:true a&&b:true

a:true b:false a&b:false a&&b:false

a:false b:true a&b:false a&&b:false

a:false b:false a&b:false a&&b:false

但&作为逻辑运算符时,即使第一个操作符是false,那么它仍然会计算第二个操作符。&&短路与,如果第一个操作符为false,那么它不会再去计算第二个操作符。

eg.

System.out.println(false & (1/0 == 0)); 抛出异常
System.out.println(false && (1/0 == 0)); 打印出false

|与||的区别是一样的。

Java中&与&&的区别

原文:http://www.cnblogs.com/littlezan/p/3522866.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!