算术运算符
+ | - | + | - | * | / |
% | (前)++ | (后)++ | (前)– | (后)– | + |
(前)++:先自增1,后运算
(后)++:先运算,后自增1
(前)- -:先自减1,后运算
(后)- -:先运算,后自减1
赋值运算符
= | += | -= | /= | *= | %= |
运算的结果不会改变变量本身的数据类型
比较运算符
> | < | >= | <= | != | == | instanceof |
比较运算符的结果是 boolean 类型
> < >= <=:只能使用在数值类型的数据之间
== !=:不仅可以使用在数值类型数据之间,还可以使用在其他引用类型变量之间
逻辑运算符
& | && | | | || | ^ | ! |
逻辑运算符操作的都是boolean类型的变量,结果也是boolean型
位运算符
>> | >>> | << | ^ | & | | | ~ |
位运算符操作的都是整型的数据
<<:在一定范围内,每向左移1位,相当于 * 2
>>:在一定范围内,每向右移一位,相当于 / 2
//交换两个值
class BitExr {
public static void main(String[] args) {
int n1 = 10;
int n2 = 20;
n1 = n1 ^ n2;
n2 = n2 ^ n1;
n1 = n1 ^ n2;
System.out.println("n1="+n1+",n2="+n2);
}
}
//求一个 0~255 范围内的整数的十六进制值
class Day03Exr {
public static void main(String[] args) {
int num1 = 60;
int num2 = num1 & 15;
String j = (num2 > 9)?(char)(num2-10+'A')+"":num2+"";
int temp = num1 >>> 4;
num2 = temp & 15;
String k = (num2 > 9)?(char)(num2-10+'A')+"":num2+"";
System.out.println(k+""+j);
}
}
三元运算符
(条件表达式)? 表达式1 : 表达式2 |
条件表达式的结果为 boolean 类型
三元运算符可以嵌套使用
凡是可以使用三元运算符的地方,都可以改写为if-else
//获取两个正数的较大值
class SanYuanTest{
public static void main(String[] args){
int m = 5;
int n = 12;
int max = m>n?m:n;
System.out.println(max);
}
}