Java中的运算符包括算法运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符、对象、下标、实例、内存分配、强制类型转换、方法调用运算符等
一、算术运算符
算数运算符 | 操作 | 示例 | 结果 |
---|---|---|---|
+ | 正号 | +5 | 5 |
- | 负号 | -5 | -5 |
+ | 加 | 5+5 | 10 |
- | 减 | 11-5 | 6 |
* | 乘 | 5*5 | 25 |
/ | 除 | 5/5 | 1 |
% | 取模 | 5%2 | 1 |
++ | 自增(前) | a=5;b=++a | a=6;b=6 |
++ | 自增(后) | a=5;b=a++ | a=6;b=5 |
– | 自减(前) | a=5;b=–a | a=4;b=4 |
– | 自减(后) | a=5;b=a– | a=4;b=5 |
+ | 字符串相加 | “123”+“456” | “123456” |
注意
1、i++、++i参与运算的区别
i++:先参与运算、再自增;++i:先自增、再参与运;- -亦如此
2、Java的计算规则
(1)、计算的封闭性:同一种数据类型参与运算,计算结果也是相同的数据类型
(2)、当byte、char、short类型的变量参与运算时,JVM会首先将byte、char、short的变量转换成int类型再进行运算
(3)、两个不同类型的操作数参与运算时,系统会将两者先统一为较大范围者的数据类型再进行运算
public class Test02Operator {
//运算符
public static void main(String[] args) {
//i--和--i的区别
//1、不参与运算时,效果一样,都是自增或自减
int b = 10;
b--;
--b;
//2、参与运算时
int i = 10;
int c = i--; //--在后,先参与运算,再自增或自减
System.out.println(i); //i = 9
System.out.println(c); //10
i = 10;
c = --i; //--在前,先自增或自减,再参与运算
System.out.println(i); //i = 9
System.out.println(c); //c = 9
/*
* 运算规则
* */
System.out.println(5/2.5); //2.0,运算的封闭性
char ch = 'A';
char ch2 = 'a';
byte b1 = 5;
short s = 5;
int result = ch + ch2;
// 先转换为int类型再运算
System.out.println(result); //162 = 65+97
result = b1 + s; //会先转换为较大的数据类型
System.out.println(result);//10=5+5
double d = result + ch + b;
System.out.println(d); //83.0
}
}
二、赋值运算符
常见赋值运算符 | 格式 | 示例 | 结果 |
---|---|---|---|
= | 变量=表达式 | a = 5 | 将3赋值给a |
+= | 变量 += 表达式 | a += 5 | a = a+5 |
-= | 变量 -= 表达式 | a -= 5 | a = a-5 |
*= | 变量 *= 表达式 | a *= 5 | a = a*5 |
/= | 变量 /= 表达式 | a /= 5 | a = a/5 |
%= | 变量 %= 表达式 | a %= 5 | a = a%5 |
注意:在使用扩展赋值运算符时会自动完成强制类型转换
public class Test02Operator {
//运算符
public static void main(String[] args) {
// 赋值运算符
double num = 5;
// int r =num + 6; //报错
int r = 5;
r += num; //会执行强制转换
System.out.println(r); //10
}
}
三、关系运算符
关系运算符 | 缩写 | 操作 | 示例 | 结果 |
---|---|---|---|---|
< | LT | 小于 | 5<2 | false |
<= | LE | 小于等于 | 2<=2 | true |
> | GT | 大于 | 5>2 | true |
>= | GE | 大于等于 | 1>=2 | false |
== | EQ | 等于 | 2==3 | false |
!= | EN | 不等于 | 2 != 3 | true |
四、逻辑运算符
逻辑运算符 | 操作 | 示例 | 结果 |
---|---|---|---|
& | AND(逻辑与) | false & true | false |
| | OR(逻辑或) | false | true | true |
! | NOT(逻辑非) | ! true | false |
&& | AND(逻辑与,具有短路效果) | false && true | false |
|| | OR(逻辑或,具有短路效果) | false || true | true |
注意
&和&&的区别:一个&时,无论左边真假,右边都进行运算;两个&&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。|和||同理
五、三目运算符
语法格式:条件表达式 ? 表达式1 :表达式2;
如果条件表达式为true,则结果为表达式1;否则为2。
public class Test09 {
public static void main(String[] args) {
// 三目运算符判断两个数的大小
int num1 = 10;
int num2 = 20;
System.out.println(num1>=num2?num1+"大于"+num2:num2+"大于"+num1);
}
}