1.算数运算符:
+ -
+ -
* /
(前)++ (后)++
(前)-- (后)--
+
【典型代码】
//除号:/
int num1 = 12;
int num2 = 5;
int result1 = num1 / num2;
System.out.println(result1);//2
//(前)++:先自增1,后运算
int a1 = 10;
int b1 = ++a1;
System.out.println("a1 = " + a1 +",b1 = " + b1);
//(后)++ 先运算,后自增1
int a2 = 10;
int b2 = a2++;
System.out.println("a2 = " + a2 +",b2 = " + b2);
//(前)--:先自减1,后运算
int a4 = 10;
int b4 = --a4;
System.out.println("a4 = " + a4 +",b4 = " + b4);
//(后)++ 先运算 后自减1
int a5 = 10;
int b5 = a5--;
System.out.println("a5 = " + a5 +",b5 = " + b5);
【特别说明】
1. //(前)++:先自增1,后运算
//(后)++ 先运算,后自增1
2. //(前)--:先自减1,后运算
//(后)++ 先运算 后自减1
3.连接符:+:使用于string类型和其他数据类型之间
2.赋值运算符: = += -= *= /= %=
【典型代码】
//赋值符号:=
int i1 = 10;
int j1 = 10;
int i2,j2;
i2 = j2 = 10;
int i3 = 10,j3 = 30;//连续赋值
int num1 = 10;
num1 += 2; //num1 = num2 + 2;
System.out.println(num1);//12
int num2 = 12;
num2 %= 5; //num2 = num2 % 2;
System.out.println(num2);
short s1 = 10;
s1 += 2;//不会改变变量本身数据类型
System.out.println(s1);
【特别说明】
1.运算的结果不会改变变量本身的数据类型
2.
//开发中,如果希望变量实现+2的操作,有几种方法?(前提:int num = 10;)
//方式一:num = num + 2;
//方式二:num += 2;(推荐)
//开发中,如果希望变量实现+1的操作,有几种方法?(前提:int num = 10;)
//方式一:num = num + 1;
//方式二:num += 1;
//方式三: num++;(推荐)
3.比较运算符:== != > < >= <= instanceof
【典型代码】
int i = 10;
int j = 20;
System.out.println(i == j);
System.out.println(i = j);
boolean b1 = true;
boolean b2 = false;
System.out.println(b2 = b1);
System.out.println(b2 = b1);
【特别说明】
1.比较运算符的结果是boolean类型
2.> < >= <= :只能使用在数据类型的数据之间。
3. == 和 != : 不仅可以使用在数据类型数据之间,还可以使用在其他引用类型变量之间。
4.逻辑运算符:& && | || ! ^
【典型代码】
//区分& 与 &&
//相同点1:& 与 && 运算结果相同
//相同点2:当符号左边是true,二者都会执行符号右边的运算
//不同点: 当符号左边是false时,&继续执行符号右边的运算,&&不再执行符号右边的运算
//在开发中,推荐使用&&
boolean b1 = true;
b1 = false;
int num1 = 10;
if(b1 & (num1++ > 0)){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
System.out.println("num1 = " + num1);
}
boolean b2 = true;
b2 = false;
int num2 = 10;
if(b2 && (num2++ > 0)){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}
System.out.println("num2 = " + num2);
//区分: | 与 ||
//相同点1:| 与 ||的运算结果相同
//相同点2:当符号左边是false时,二者都会执行符号右边的运算
//不同点:当符号左边是true时,|继续执行符号右边的运算,而||不再执行符号右边的运算
//开发中,推荐使用||
boolean b3 = false;
b3 = true;
int num3 = 10;
if(b3 | (num3++ > 0)){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}
System.out.println("num3 = " + num3);
boolean b4 = false;
b4 = true;
int num4 = 10;
if(b4 || (num4++ > 0)){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}
System.out.println("num4 = " + num4);
}
}
【特别说明】
1.逻辑运算符操作的都是boolean类型的变量
5.位运算符: << >> >>> & | ^ ~
【典型代码】
int i = 21;
System.out.println("i << 2 :" + (i << 2));
System.out.println("i << 3 :" + (i << 3));
System.out.println("i << 90 :" + (i << 90));
int m = 12;
int n = 5;
System.out.println("m & n ;" + (m & n))
System.out.println("m | n ;" + (m | n))
System.out.println("m ^ n ;" + (m ^ n))
【特别说明】
1.位运算符操作的都是整型的数据
2.<< :在一定的范围内,每向左移1位,相当于 * 2
>> :在一定的范围内,每向右移1位,相当于 / 2
6.三元运算符
(条件表达式)? 表达式1: 表达式2
【特别说明】
1.条件表达式的结果都是boolean类型
2.根据条件表达式或真或假,决定执行表达式1,还是表达式2
如果表达式是true, 则是表达式1
如果表达式是false, 则是表达式2
表达式1和表达式2要求一致的
三元运算符可以被嵌套使用
3.凡是可以使用三元运算符的地方,都可以改写if-else
反之 不成立
4.如果程序可以使用三元运算符,又可以使用if-else结构,那么优先选用三元运算符
原因:简洁 运行效率高