> 育儿
和的区别java(javaamp)
导语:JAVA编程中&和&&的区别
相同点&和&&都可以作为逻辑与的运算符,表示逻辑 与(and)并且的意思。
不同点2.1 &&具有短路的功能,而&不具备短路功能。
2.2 当&运算符两边的表达式的结果都为true时,整个运算结果才为true。而&&运算符第一个表达式为false时,则结果为false,不再计算第二个表达式。
考虑如下例子:说明&不具备短路功能,表达式继续执行。
public static void main(String[] args) { boolean a = true; if(a & f1() & f2() ) { System.out.println(&34;); } } public static boolean f1() { System.out.println(&34;); return false; } public static boolean f2() { System.out.println(&34;); return false; } 输出结果为 1, 2 结论: &不具备短路功能,会继续执行表达式判断。
考虑如下例子,说明&&具备短路功能,表达式不再执行。
public static void main(String[] args) { boolean a = true; if(a && f1() && f2() ) { System.out.println(&34;); }}public static boolean f1() { System.out.println(&34;); return false;}public static boolean f2() { System.out.println(&34;); return false;}输出结果为1 结论:&&具备短路功能,如果表达式为假,不继续执行下面的表达式判断,会立即返回。
2.3 &还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,
考虑下面的例子
public static void main(String[] args) { // 位与(&):二元运算符,两个为1时结果为1,否则为0 // 1的二进制表示为: 00000001 // 2的二进制表示为: 00000010 // 1&2的二进制计算结果为 00000000 ~~ 换成10进制是 0 所以输出结果为0 int i = 1 & 2; System.out.printf(&34;+i);}输出结果为0 具体过程看注释
本文内容由快快网络小茜整理编辑!