输出: i = 20 i2 = 21 i = 22 i2 = 22
总结: ++(- -) 在前时先运算再取值 在后时先取值再运算
异或: 0^0=0 0^1=1 1^0=1 1^1=0 假^假=假 假^真=真 真^假=真 真^真=假 简单来说,相同为0,不同为1;相同为假,不同为真。
短路与: a&&b:只有a与b都为true,结果才为ture;有一个为false,结果为false。 所谓短路,即在第一项为false的情况下,cpu不再进行第二项的判断。
短路或: a||b:只有a与b都为false,结果才为false;有一个为true,结果为true。 所谓短路,即在第一项为true的情况下,cpu不再进行第二项的判断。 示例:
String str = null; System.out.println(null == str || a.isEmpty());在该段代码中,由于第一项null == str为true,所以无论第二项的结果是true还是false都不影响整体的结果;若此处为”|”非短路与,则第二项执行时必定会报空指针错误。这就是短路或与非短路或的区别。
所以在Java编程中,对于&&和||,Java只看第一个操作数的值,对于&&,如果第一个值为false,那么第二个不再计算,如果第一个值为true,那么还要计算第二个值;对于||,如果第一个值为false,那么还要计算第二个值,如果第一个值为true,那么第二个值不再计算;对于&和|操作符,两边无论如何都计算。
三目条件: 例子:
min=(a<b)?a:b; 解释:如果a<b成立 则min=a 将a的值赋值给min 否则将b的值赋值给min转载于:https://www.cnblogs.com/fanren224/p/8457227.html