&与&&,|与||
逻辑运算符与(&,&&),或(|,||);
&和&&都代表与也就是and,|和||都代表或者也就是or;他们的判断结果相同,但是运算的效率不同;&和|当一个条件能够决定整个结果的时候,并不会停止判断,&&和||当一个条件能够决定整个结果的时候就不会继续判断;
//&与&&
System.out.println(true&true)//true
System.out.println(true&false)//false
System.out.println(false&false)//false
System.out.println(false&false)//false
System.out.println(true&&true)//true
System.out.println(true&&false)//false
System.out.println(false&&false)//false
System.out.println(false&&false)//false
//|与||
System.out.println(true|true)//true
System.out.println(true|false)//true
System.out.println(false|false)//false
System.out.println(false|true)//true
System.out.println(true||true)//true
System.out.println(true||false)//true
System.out.println(false||false)//false
System.out.println(false||true)//true
如何判断是否短路
int a=1;
int b=1;
System.out.print(a==2&++b==2)//false
//因为a并不等于2第一个条件为false当时他还是执行了第二个条件所以&并没有短路
System.out.print(a+" "+b)//1 2
System.out.print(a==2&&++b==2)//false
//第一个条件为false可以判断整个条件第二个条件并没有执行所以&&具有短路的特征
System.out.printlb(a+" "+b)//1 2