1. 算数运算符
算数运算符即加减乘除取余!
int a = 6;
int b = 4;
System.out.println(a + b); //10 加法
System.out.println(a - b); //2 减法
System.out.println(a * b); //24 乘法
System.out.println(a / b); //1 除法
System.out.println(a % b); //2 取余
取余得到的是余数,除法得到的是商,整数相除只能得到整数,要想得到小数,必须有浮点数的参与!
算数表达式中包含多个基本数据类型的值时,整个算数表达式的类型会自动进行提升。
提升规则:
① byte 类型、short 类型和 char 类型将被提升到 int 类型;
② 整个表达式的类型自动提升到表达式中最高等级操作数同样的类型。
字符的 + 操作就是拿字符在计算机底层对应的数值来进行计算,即ASCLL码,而字符串的 + 操作其实就是字符串的拼接,加号是字符串连接符,当连续执行多个 + 操作时,要从左到右逐个执行!
2. 赋值运算符
int i = 10; //把10赋值给i
i += 20; //30 等价于 i = i + 20,但是 i += 20 底层隐含了强制类型转换
扩展的赋值运算符隐含了强制类型的转换!
3. 自增自减运算符
int i = 10;
i++; //i = 11
int j = i++; //j = 11
注意 i++ 和 ++i 在单独使用时结果相同,但是参与运算操作的时候就不一样了,i++ 先赋值后加一,而 ++i 是先加一后赋值,从而导致结果不同!
4. 关系运算符
两个等于号才叫等于,一个等于号叫赋值,关系运算后的结果是 false or true!
5. 逻辑运算符
逻辑运算符是用来连接关系表达式的运算符,当然,逻辑运算符也可以直接连接布尔类型的常量或变量。
① 基本逻辑运算符
int i = 10;
int j = 20;
int k = 30;
System.out.println((i > j) & (i > k)); //false
System.out.println((i < j) & (i > k)); //false
System.out.println((i > j) & (i < k)); //false
System.out.println((i < j) & (i < k)); //true
System.out.println(!(i > j)); //true
逻辑与当两边都为 true 时结果才为 true,逻辑或两边只要有一个为 true 结果就是 true,逻辑异或两边相同为 false 不同为 true,逻辑非非 true 即 false!
② 短路逻辑运算符
注意:
① 逻辑与 & 和逻辑或 |,无论左边真假,右边都要执行;
② 短路与 &&,如果左边为真,右边执行,如果左边为假,右边不执行;
③ 短路或 ||,如果左边为假,右边执行,如果左边为真,右边不执行。
6. 三元运算符
格式:关系表达式 ?表达式1 :表达式2;
计算规则:
① 首先计算关系表达式的值;
② 如果值为 true,则表达式1的值就是运算结果;
③ 如果值为 false,则表达式2的值就是运算结果。
//获取两个数据中的较大值
int a = 10;
int b = 20;
int max = a > b ? a : b; //20