联系运算符的流程;
逻辑运算:
//逻辑运算符 public class Demo05 { public static void main(String[] args) { //与(and) 或(or) 非(取反) boolean a =true; boolean b =false; System.out.println("a && b:"+(a && b)); //逻辑与运算 : 两个变量都为真,结果才为true System.out.println("a || b:"+(a||b)); //逻辑或运算 : 两个变量有一个为真,结果才为true System.out.println("!(a && b):"+!(a && b)); //如果为真,则变为假;如果为假,则变为真 //短路运算 int c =5; boolean d =(c<4)&&(c++<4); System.out.println(d); System.out.println(c); } }
位运算:
public class Demo06 { public static void main(String[] args) { /*位运算 A =0011 1100 B =0000 1101 ---------------------------------- A&B = 0000 1100 当全为1,才显示为1 A|B = 0011 1101 当全为0,才显示为0 A^B = 0011 0001 两个位置相同时,则为0,俩个位置不相同时,则为1 ~B = 1111 0010 取反 面试: 2*8 = 怎么运算最快 2*2*2*2 位运算 效率高 <<左移 相当把数字*2 >> 右移 相当于把数字/2 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 ..... 0000 1000 8 0001 0000 16 */ System.out.println(2<<3); } }
字符串及扩展赋值运算符
public class Demo07 { public static void main(String[] args) { int a =10; int b =20; a+=b; // a = a+b a-=b; // a = a-b System.out.println(a); //字符串连接符 + ,出现String类型 就会把另外一个操作转换成String 再进行连接 System.out.println(""+a+b); // 1020 //面试题 这俩个有什么区别呢? //在字符串前面的操作时不变,只影响字符串,后面的转化成String ,进行连接 System.out.println(a+b+""); System.out.println(a+b+" "+a+b); }
三元运算符 x?y:z
//三元运算符 public class Demo08 { public static void main(String[] args) { // x ? y : z //如果x==true,则结果为y ,否则结果为z int score =50; String type= score < 60?"不及格":"及格"; //必须掌握 //if System.out.println(type); } }