+ - * / ++ --
Java中取余本质: a % b = a - a / b * b
经典面试题:int i = 1; int j = i++; //1.j = i; 2.i = i + 1; System.out.println(j); i = 1; i = i++;// 1.申请一个临时变量 temp = i; 2. i = i + 1; 3.i = temp, // 这是因为JVM在处理i=i++时会建立一个临时变量来接收i++的值 System.out.println(i); i = 1; i = ++i;//1.i = i + 1; 2.临时变量temp = i ; 3. i = temp; System.out.println(i);2.关系运算符
== != < > <= >=
返回类型为Boolean型
3.逻辑运算符逻辑与& 短路与&& 逻辑或| 短路或|| 非!
异或 相同返回false 不同返回true
逻辑与和短路与的区别:两者都是当条件都为真时返回true,当有条件为假时返回false
区别:
当有条件为假时,短路与不会接着判断下面的条件,而逻辑与会接着判断,因此短路与的效率高。
int a = 9;
int b = 9;
if(a < 1 && ++b < 20){
System.out.println("111");
} //++b不执行
System.out.println("a = " + a + " b = " + b);
if(a < 1 & ++b < 20){// ++b执行了
System.out.println("111");
}
System.out.println("a = " + a + " b = " + b);
输出:9 9
9 10
逻辑或与短路或的区别与上类似:对于短路或,如果第一个条件为真,接下来条件不进行判断,而逻辑或会进行判断,短路或的效率高 4.赋值运算符基本赋值运算符:=
混合赋值运算符:+= -= *= %=
当赋值作为条件判断时:赋值语句作为判断条件时,赋值的数据类型得是布尔类型, 否则会报错,赋值的布尔类型为true则判断条件为真,否之为假。 //赋值语句作为判断条件
boolean flag = false;
if(flag = true)
System.out.println("语句1");
else
System.out.println("语句2");
//赋值语句作为判断条件时,赋值的数据类型得是布尔型 否则会报错
//赋值的布尔类型为true则判断条件为真 否之为假
混合赋值运算java底层会自动进行类型转换:
//复合赋值运算会进行类型转换 byte num = 8; //num = num + 2; //int->byte X num +=2; // == num = (byte)num+2; System.out.println(num); //num = num + 1; X num++; System.out.println(num);5.三元运算符 条件表达式?表达式1:表达式2
当条件表达式为true,运算后的结果为表达式1
当条件表达式为false,运算后的结果为表达式2



