我服了,没经过测试就到这里来忽悠人,还有下面那个,竟然说他们说得很对...害我又测试一遍,
在java中和c不同,java中&&和||已经是短路操作了,测试
String str = null;
System.out.println(true||str.equals(""));
明显没问题,如果没短路,肯定会出现NullPointerException
再测试
String str = null;
System.out.println(true|str.equals(""));
控制台马上就出现了异常.....
String str = null;
System.out.println(false&&str.equals(""))
不会出现异常
看到了啥时候是短路,啥时候不是短路了吧
a&&b 当a为真时会去检查b是否为真当两个同时为真是返回真,当a为假时不去检查b
& 或者 | 操作整数的时候请参考
http://hi.baidu.com/injava/blog/item/2735c743a395321372f05d1b.html当& 和| 操作boolean的时候,就是不短路操作
例如
a&b 当a为false的时候还是会去检查b的值.例如:
(i>5)&(--i==10)也就是说,不管i大不大于5,i总是要减的.
javaQQ群:76397268 期待你的加入本回答被提问者采纳