赋值符
算术运算符
加,减,乘,除,取余,自增,自减
+:用于字符串,那么就是字符串拼接;用于数值,那么就是作加法运算;
public static void main(String[] args) { // 算术运算符 + int i = 1; int j = 2; int k = i + j; System.out.println("i + j = " + i + j); System.out.println("i + j = " + (i + j));/:取整,两个整数相除,叫取整,即结果也是整数,舍弃小数部分;除数和被除数之间,只要有一个是浮点数,结果就是浮点数;除数不可为0;
public static void main(String[] args) { //算术运算符 / int m = 10; int n = 5; double l = 3.2; System.out.println("m / n = "+ (m / n)); System.out.println("m / l = "+ (m / l)); ```%:取余:两个数相除的余数;
自增和自减:在变量原有的基础上,加1或者减1.
a. 先自增/自减:++/–写在前面:先自增/自减,然后再参与运算;
b. 后自增/自减:++/–写在前面:先参与运算,然后再自增/自减。
复合赋值运算符:+=,-+,*=,/=,%=
关系运算符
等于,不等于:=,!=
可以比较字符是否相等,布尔类型是否相等;同样可以比较引用类型的地址.大于,小于,大于等于,小于等于:>,<,>=,<=
只可以比较数值关系运算符比较的结果是布尔类型
逻辑运算符
与:两边都为true,结果为true;任意一边是false,结果就是false
长路与 &(用一个“&”表示): 无论左边是否执行,右边都要执行
public static void main(String[] args) { int i = 1; int j = 2; System.out.println(i++ == j & i++ > j);//1 = 2 & 2>2 System.out.println(i); //3 System.out.println(j); //2 }短路与 &&(用两个“&”表示):只要左边得到结果,则右面不再执行
public static void main(String[] args) { int i = 1; int j = 2; System.out.println(i++ == j && i++ > j); System.out.println(i); System.out.println(j); System.out.println(i++ == j && i++ > j);// 2==2 && 3>2 System.out.println(i); //注意i++与++1的运算区别 System.out.println(j); }或:两边都为false,结果为false;任意一边都为true,结果就是true
长路或 |:短路或||:非:true即是false,false即是true
public static void main(String[] args) { // 逻辑运算符 // 与 System.out.println(true && true); System.out.println(false && true); // 或 System.out.println(true || true); System.out.println(false || true); // 非 System.out.println(!true); System.out.println(!false); }运行结果
true false true true false true三目运算符
String messager = "帅".equals(result)?"回答正确":"回答不对,想清楚再说!";位运算符(了解)
位运算符是基于二进制的运算 右位移:>> 往右移位,低位舍弃,高位补0 :右位移1位,相当于该值取整除以2;移2位,相当于该值取整除以2再除以2左位移:<< 往左移位,低位补0:左位移1位,相当于该值乘以2位移运算的性能是非常高的运算符的优先级
算术 > 关系 > 逻辑正常情况是从左往右执行运算,特例是赋值符运算是从右往左优先级最低:赋值运算符优先级最高的是:自增,自减,非;++,–,! 特例:():任何情况下,加了括号的一定先执行如果实在是分辨不出优先级,那么可以无脑加括号,提高可读性