一. 算数运算符
关于 Java 编程中的运算符之:算数运算符
| + | 求和 |
|---|---|
| – | 相减 |
| * | 乘积 |
| / | 商 |
| % | 取余数【取模】 |
| ++ | 自加 1 |
| – – | 自减 1 |
| 小结:++运算符可以出现在变量前,也可以出现在变量后,,无论是变量前还是变量后只要++运算结束,该变量中的值一定会自加 1 |
++a:先自增1,在进行运算。
a++:先运算,再自增1。
二. 关系运算符
| > | 大于 |
|---|---|
| >= | 大于等于 |
| < | 小于 |
| <= | 小于等于 |
| == | 等于 |
| != | 不等于 |
= 是赋值运算符;
== 是关系运算符;
关系运算符的结果一定是布尔类型。
public class OperatorTest
{
public static void main(String[] args){
int a=10;
int b=10;
System.out.println(a>b); //false
System.out.println(a>=b); //ture
System.out.println(a<b); //false
System.out.println(a<=b); //true
System.out.println(a==b); //true
System.out.println(a!=b); //false
}
}
三. 逻辑运算符
| 逻辑运算符 | 解释 |
|---|---|
| & | 逻辑与 (两边的算子都是 true,结果才是 true) |
| ! | 逻辑非(取反,!False 就是 true,!True 就是假,这是一个单目运算符) |
| ^ | 逻辑异或(两边的算子只要不一样,结果就是 true) |
| && | 短路与(第一个表达式执行结果是 false,会发生短路与) |
| 逻辑或(两边的算子只要有一个是true,结果就是true)
|| 短路或(第一个表达式执行结果是true,会发生短路或)
- 逻辑运算符要求两边的算子都是布尔类型,并且逻辑运算符最终的运算结果也是一个布尔类型。
- 短路与和逻辑与最终的运算结果是相同的,只不过短路与存在短路现象。
- 短路或和逻辑或最终的运算结果是相同的,只不过短路或存在短路现象。
** 逻辑与和短路与的区别**
public class Test01
{
public static void main(String[] args){
int x=10;
int y=8;
System.out.println(x < y& ++x < y); //进行了++x的操作
System.out.println(x); //x=11
}
}
public class Test02
{
public static void main(String[] args){
int x=10;
int y=8
System.out.println(x < y && ++x < y); //因为x<y是false,直接短路,后面的操作就不在执行
System.out.println(x); //x=10
}
}
从某个角度来看,短路与更智能。由于后面的表达式可能不执行,所以执行效率较高。这种方式在实际开发中使用较多。短路与比逻辑与使用的多。短路与更常用。
但是,在某些特殊的逻辑业务中,要求运算符两边的算子必须全部执行,此时必须使用逻辑与,不能使用短路与,使用短路与可能导致右边的表达式不执行。
四. 赋值运算符
Java 中赋值类运算符包括两种:
基本的赋值运算符:=
扩展的赋值运算符:+=、-+、*=、/+、%=
赋值类的运算符优先级:先执行等号右边的表达式,将执行结果赋值给左边的变量。
注意以下代码:
byte x=10;
x += 5;//并不等同于:x =x+5,而等同于:x= (byte)(x+5)
int y=10;
y += 5; //等同于:y= (int)(y+5)
long a=10L;
int b=20;
b += a; // 等同于:b = (int)(b+a)
重要结论:扩展类的赋值运算符不改变运算结果类型,假设最初这个变量的类型是 byte 类型,无论怎么追加或追减,最终该变量的数据类型还是 byte 类型。
五. 字符串连接运算符
关于 java 中的 “+” 运算符:
+运算符在 java 语言中当中有两个作用:
加法运算
字符串的连接运算数字+数字 →数字【求和】
数字+“字符串” →“字符串”【字符串连接】在一个表达式当中可以出现多个“+”,在没有添加小括号的前提下,遵循自左向右的顺序依次运算。
public class Test{
public static void main(String[] args){
int a=10;
int b=20;
System.out.println("10+20=30"); //在控制台输出“10+20=30”
System.out.println("10+20="+a+b); //以动态方式输出“10+20=1020”
System.out.println("10+20="+(a+b)); //输出10+20=30
}
}
String 是引用数据类型,s 是变量名,“abc”是 String 类型的字面值
String s=“abc”
六. 三元运算符
三元运算符/三目运算符/条件运算符
1、语法规则:
布尔表达式?表达式 1:表达式 2
2、三元运算符的执行原理
当布尔表达式的结果是 true 的时候,选择表达式 1 作为整个表达式的执行结果
当布尔表达式的结果是 false 的时候,选择表达式 2 作为整个表达式的执行结果






