目录
第一章:概述
第二章:算术运算符
2.1 概述
2.2 应用示例
2.3 + 号的两种用法
2.4 自增自减运算
2.4.1 概述
2.4.2 单独使用
2.4.3 复合使用
第三章:赋值运算符
3.1 概述
3.2 应用示例
第四章:关系运算符(比较运算符)
4.1 概述
4.2 应用示例
第五章:逻辑运算符
5.1 概述
5.2 应用示例
5.3 && 和 & 区别,|| 和 |区别
第六章:条件运算符(三元运算符)
6.1 概述
6.2 应用示例
第七章:运算符的优先级(了解)
第一章:概述
- 表达式:用运算符连接起来的式子。
- 运算符的分类:
-
- 按照功能分为:算术运算符、赋值运算符、比较运算符、逻辑运算符、条件运算符……
| 分类 | 运算符 |
| 算术运算符 |
|
| 赋值运算符 |
|
| 关系运算符 |
|
| 逻辑运算符 |
|
| 条件运算符 |
|
| 位运算符(了解) |
|
- 按照操作数个数分为:一元运算符(单目运算符)、二元运算符(双目运算符)、三元运算符(三目运算符)
-
- 一元运算符:操作数只有一个
-
-
- 例如:
-
-
-
-
- 正号(+):+a
-
-
-
-
-
- 负号(-):-a
-
-
-
-
-
- 自增(++):++i
-
-
-
-
-
- 逻辑非:!true
-
-
-
- 二元运算符:操作数有两个
-
-
- 例如:
-
-
-
-
- 加法:a + b
-
-
-
-
-
- 大于:a > b
-
-
-
-
-
- 逻辑与:a && b
-
-
-
- 三元运算符:条件 ? 结果1 :结果2。
第二章:算术运算符
2.1 概述
| 算术运算符 | 符号解释 |
|
| 加法运算,字符串连接运算,正号 |
|
| 减法运算,负号 |
|
| 乘法运算 |
|
| 除法运算,整数/整数结果还是整数 |
|
| 求余运算,余数的符号只看被除数 |
|
| 自增自减运算 |
2.2 应用示例
- 示例:
/**
* @author GUO
* @version 1.0
* @since 2022-11-16
*/
public class ArithmeticOperator {
public static void main(String[] args) {
// 正号:+
int operator01 = +5;
System.out.println("operator01 = " + operator01); // 5
// 负号:-
int operator02 = -5;
System.out.println("operator02 = " + operator02); // -5
// 负负得正
int operator03 = -3;
System.out.println("operator03 = " + -operator03); // 3
// 加法: +
int operatorAdd01 = 1;
int operatorAdd02 = 2;
int addResult = operatorAdd01 + operatorAdd02;
System.out.println("addResult = " + addResult);// 3
double operatorAdd03 = 10.2;
double operatorAdd04 = 3.8;
double addResultDouble = operatorAdd03 + operatorAdd04;
System.out.println("addResultDouble = " + addResultDouble); // 14.0
// 减法:-
int operatorMinus01 = 1;
int operatorMinus02 = 2;
int minusResult = operatorMinus01 - operatorMinus02;
System.out.println("minusResult = " + minusResult); // -1
// 乘法:*
int operatorMulti01 = 1;
int operatorMulti02 = 2;
int multiResult = operatorMulti01 * operatorMulti02;
System.out.println("multiResult = " + multiResult); // 2
// 除法:/ ,注意:除数不能为0
int operatorDivision01 = 6;
int operatorDivision02 = 3;
int divisionResult = operatorDivision01 / operatorDivision02;
System.out.println("divisionResult = " + divisionResult); // 2
int operatorDivision03 = 6;
int operatorDivision04 = 4;
int divisionResult2 = operatorDivision03 / operatorDivision04;
System.out.println("divisionResult2 = " + divisionResult2); // 1
// 取模:%
int mod = operatorDivision03 % operatorDivision04;
System.out.println("mod = " + mod); // 2
}
}
2.3 + 号的两种用法
- ①对于
+号两边都是数值的情况,+就是加法的意思。
- ②对于
+号两边至少一边是字符串的情况,+就是拼接的意思。
- 示例:
/**
* 加号的用法
* <p>
* 第一种:对于`+`两边都是数值的话,`+`就是加法的意思
* <p>
* 第二种:对于`+`两边至少有一边是字符串得话,`+`就是拼接的意思
*
* @author GUO
* @version 1.0
* @since 2022-11-16
*/
public class PlusDemo {
public static void main(String[] args) {
String str = "Hello";
System.out.println("str = " + str); // Hello
System.out.println(str + "World"); // HelloWorld
String str2 = "Java";
System.out.println(str2 + 520); // Java520
System.out.println(str2 + 5 + 20); // Java520
}
}
2.4 自增自减运算
2.4.1 概述
++运算,变量自身+1;反之,--运算,变量自身-1。
2.4.2 单独使用
- 变量在单独运算的使用,变量
前++和变量后++,变量的值是一样的。
- 变量
前++:例如++a。
- 变量
后++:例如a++。
- 示例:
/**
* 自增和自减
*
* @author GUO
* @version 1.0
* @since 2022-11-16
*/
public class IncreaseAndDecrease {
public static void main(String[] args) {
int a = 3;
a++;
System.out.println("a = " + a); // a = 4
int b = 3;
++b;
System.out.println("b = " + b); // b = 4
}
}
2.4.3 复合使用
- 和
其他变量放在一起使用或者和输出语句在一起使用,前++和后++就产生了不同。
- 变量
前++:变量先自身加 1 ,然后再取值。
- 变量
后++:变量先取值,然后再自身加 1 。
总结:
- ++在前,先自增,后使用。
- ++在后,先使用,后自增。
- 示例:
/**
* 自增和自减
*
* @author GUO
* @version 1.0
* @since 2022-11-16
*/
public class IncreaseAndDecrease2 {
public static void main(String[] args) {
int x = 3;
int y = x++;
System.out.println("x = " + x); // x = 4
System.out.println("y = " + y); // y = 3
int z = 5;
System.out.println("z++ = " + z++); // z++ = 5
System.out.println("z = " + z); // z = 6
int a = 1;
a = a++;
System.out.println("a = " + a); // a = 1
}
}
第三章:赋值运算符
3.1 概述
| 赋值运算符 | 符号解释 |
|
| 将符号右边的值,赋值给左边的变量 |
|
| 将符号 和 进行相加操作,最后将结果 |
|
| 将符号 和 进行相减操作,最后将结果 |
|
| 将符号 和 进行相乘操作,最后将结果 |
|
| 将符号 和 进行相除操作,最后将结果 |
|
| 将符号 和 进行取余操作,最后将结果 |
注意:
所有的赋值运算符的左边一定是一个变量。
扩展赋值运算符将最后的结果赋值给左边的变量前,都做了强制类型转换。
3.2 应用示例
- 示例:
/**
* 赋值运算符
*
* @author GUO
* @version 1.0
* @since 2022-11-16
*/
public class AssignmentOperator {
public static void main(String[] args) {
int a = 3;
int b = 4;
a = a + b;
System.out.println("a = " + a); // 7
System.out.println("b = " + b); // 4
}
}
- 示例:
/**
* 扩展赋值运算符
*
* @author GUO
* @version 1.0
* @since 2022-11-16
*/
public class AssignmentOperator2 {
public static void main(String[] args) {
int a = 3;
int b = 4;
b += a; // 相当于 b = b + a;
System.out.println("a = " + a); // a = 3
System.out.println("b = " + b); // b = 7
short s = 3;
// s = s + 4; 代码编译错误,因为将int类型的结果赋值给short类型的变量s,可能损失精度
s += 4; // 代码没有报错,因为在得到int类型的结果后,JVM自动完成一步强制类型转换,将int类型转换成short
System.out.println("s = " + s); // s = 7
int j = 1;
j += ++j * j++; // 相当于 j = j + (++j * j++);
System.out.println(j); // 5
}
}
第四章:关系运算符(比较运算符)
4.1 概述
| 关系运算符 | 符号解释 |
|
| 比较符号左边的数据是否小于右边的数据,如果小于结果是true。 |
|
| 比较符号左边的数据是否大于右边的数据,如果大于结果是true。 |
|
| 比较符号左边的数据是否小于或者等于右边的数据,如果大于结果是false。 |
|
| 比较符号左边的数据是否大于或者等于右边的数据,如果小于结果是false。 |
|
| 比较符号两边数据是否相等,相等结果是true。 |
|
| 不等于符号 ,如果符号两边的数据不相等,结果是true。 |
注意:
- 比较运算符,是两个数据之间进行比较的运算,运算结果一定是 boolean 值
true或false。
>、<、>=、<=不支持 boolean 和 String 类型。
==和!=支持 boolean 和 String 类型。
4.2 应用示例
- 示例:
/**
* 关系运算符
*
* @author GUO
* @version 1.0
* @since 2022-11-16
*/
public class RelationOperator {
public static void main(String[] args) {
int a = 3;
int b = 4;
System.out.println(a < b); // true
System.out.println(a > b); // false
System.out.println(a <= b); // true
System.out.println(a >= b); // false
System.out.println(a == b); // false
System.out.println(a != b); // true
}
}
第五章:逻辑运算符
5.1 概述
- 逻辑运算符,是用来连接两个
boolean类型结果的运算符(!除外),运算结果一定是boolean类型值true或false。
逻辑运算符,是用来连接两个boolean类型结果的运算符(!除外),运算结果一定是boolean类型值true或false。
| 逻辑运算符 | 符号解释 | 符号特点 |
|
| 与,且 | 有 |
|
| 或 | 有 |
|
| 异或 | 相同为 |
|
| 非 | 非 非 |
|
| 双与,短路与 | 左边为 false ,则右边就不看 |
|
| 双或,短路或 | 左边为 true ,则右边就不看 |
5.2 应用示例
- 示例:
/**
* 逻辑运算符
*
* @author GUO
* @version 1.0
* @since 2022-11-16
*/
public class LogicOperator {
public static void main(String[] args) {
int a = 3;
int b = 4;
int c = 5;
// & 与,且;有false则false
System.out.println((a > b) && (a > c)); // false
System.out.println((a < b) && (a < c)); // true
System.out.println((a < b) && (a > c)); // false
System.out.println((a > b) && (a < c)); // false
System.out.println("===============");
// | 或;有true则true
System.out.println((a > b) | (a > c)); // false
System.out.println((a > b) | (a < c)); // true
System.out.println((a < b) | (a > c)); // true
System.out.println((a < b) | (a < c)); // true
System.out.println("===============");
// ^ 异或;相同为false,不同为true
System.out.println((a > b) ^ (a > c)); // false
System.out.println((a > b) ^ (a < c)); // true
System.out.println((a < b) ^ (a > c)); // true
System.out.println((a < b) ^ (a < c)); // false
System.out.println("===============");
// ! 非:非false则true,非true则false
System.out.println(!false); // true
System.out.println(!true); // false
}
}
5.3 && 和 & 区别,|| 和 |区别
**&&**和**&**区别:&&和&结果一样,&&有短路效果,左边为 false ,右边不执行;&左边无论是什么,右边都会执行。
**||**和**|**区别:||和|结果一样,||有短路效果,左边为 true ,右边不执行;|左边无论是什么,右边都会执行。
第六章:条件运算符(三元运算符)
6.1 概述
- 语法:
条件表达式 ?结果1:结果2
- 条件表达式的结果是 true ,条件运算符整体结果为结果 1 ,赋值给变量。
- 条件表达式的结果是 false ,条件运算符整体结果为结果 2 ,赋值给变量。
6.2 应用示例
- 示例:
/**
* 三元运算符
*
* @author GUO
* @version 1.0
* @since 2022-11-16
*/
public class ConditionOperator {
public static void main(String[] args) {
int i = (1 == 2) ? 100 : 200;
System.out.println("i = " + i); // i = 200
int j = (3 <= 4) ? 500 : 600;
System.out.println("j = " + j); // j = 500
}
}
第七章:运算符的优先级(了解)

注意:
- 表达式不要太复杂。
- 先算的使用
(),提升优先级。
- 大体的排序:算术->位-->比较-->逻辑-->三元-->赋值。


















