
叩丁狼教育Java基础教程
1.1. 运算符
- 对常量和变量进行操作的符号称为运算符
常用运算符:
- 算术运算符
- 赋值运算符
- 比较运算符
- 逻辑运算符
- 三元运算符
1.1.1. 算术运算符(掌握)

叩丁狼教育Java基础教程
用来四则运算的符号,和小学学习的加减乘除无异。
1.1.1.1. 加减乘除余(了解)
对于 字符串 而言,+符号表示连接操作,任何类型的数据和字符串相连接,结果都是字符串。
1.1.1.2. 自增和自减(掌握)
自增:++,递增操作符,使变量值增加1,有前置和后置之分,只能操作变量。
自减:– ,递减操作符,使变量值减去1,有前置和后置之分,只能操作变量。
自增和自减具体操作是一样的,仅仅是一个是加1,一个是减1而已,现在单讲++。
代码 result ++和 ++result,结果都是result变量的值加1。
唯一的区别是:
- 前置(++result): 表示对result加1之后的结果进行运算,
- 后置(result++): 表示对result变量加1之前的值(原始值)进行运算。
如果仅仅执行简单的递增操作(只写result++或++result),那么选用任意一个都可以。
public class ArithmeticOperatorsDemo2{
public static void main(String[] args) {
int a1 = 5;
int b1 = ++ a1;
System.out.println(“a1=” + a1 + “,b1=” + b1);//a1=6,b1=6
int a2 = 5;
int b2 = a2 ++;
System.out.println(“a2=” + a2 + “,b2=” + b2);//a2=6,b2=5
}
}
比较权威的解释:
- ++a表示取a的地址,增加它的内容,然后把值放在寄存器中;
- a++表示取a的地址,把它的值装入寄存器,然后增加内存中的a的值;
如果不理解什么是寄存器,简单记住,都可以表示当前变量自身加1,区别是:
- 前置++:先增加后使用
- 后置++:先使用后增加
1.1.2. 赋值运算符(掌握)

叩丁狼教育Java基础教程
一个例子:
public class AssigningOperatorDemo {
public static void main(String[] args) {
// 把常量17赋值给int类型的变量a
int a = 17;
System.out.println(“a=” + a);
// += 把左边和右边的数据进行运算,最后赋值左边变量
a += 10;// 相当于a = a + 10
System.out.println(“a=” + a);
short s = 5;
s += 2; //底层相当于 s = (short) (s + 2)
System.out.println(“s=” + s);
}
}
1.1.3. 比较运算符(掌握)
用于比较两个变量或常量之间的大小关系,其结果是 boolean 类型(要么为true,要么为 false )。
其操作格式为:
boolean result = 表达式A 比较运算符 表达式B;

叩丁狼教育Java基础教程
注意:>=符号,表示大于或者等于。
public class ComparisonOperatorDemo {
public static void main(String[] args) {
//直接操作常量
System.out.println(10 > 5);//true
System.out.println(10 >= 5);//true
System.out.println(10 >= 10);//true
System.out.println(10 < 5);//false
System.out.println(10 <= 5);//false
System.out.println(10 <= 10);//true
System.out.println(10 == 10);//true
System.out.println(10 != 10);//false
//使用变量操作
int a = 10;
int b = 5;
boolean result = a > b;
System.out.println(result);//true
}
}
1.1.4. 三元运算符(掌握)
三元运算符,表示有三个元素参与的表达式,所以又称为三目运算符,其语义表示if-else(如果什么情况就做什么,否则做什么)。
语法格式:数据类型 变量 = boolean表达式 ? 结果A :结果B;
- 如果boolean表达式结果:
- 为true,则三元运算符的结果是结果A;
- 为false,则三元运算符的结果是结果B;
注:三元运算符必须定义变量接受运算的结果,否则报错
三元运算符结果的类型由结果A和结果B来决定的,结果A和结果B的类型是相同的。
需求1:判断一个数99是不是偶数
public class TernaryOperatorDemo1{
public static void main(String[] args) {
int a = 99;
String result = a % 2 == 0 ? “偶数” : “奇数”;
System.out.println(result);
}
}
需求2:求99和20两个数中的最大值
public class TernaryOperatorDemo2{
public static void main(String[] args) {
int a = 99;
int b = 20;
int result = a > b ? a : b;
System.out.println(“最大值:”+result);
}
}
需求3:一共55条数据,每叶10个条数据,一共分多少页(常见的分页功能)

叩丁狼教育Java基础教程
public class TernaryOperatorDemo3{
public static void main(String[] args) {
int totalCount = 54;
int pageSize = 10;
int totalPage = totalCount % pageSize == 0
? totalCount / pageSize
: totalCount / pageSize + 1;
System.out.println(totalPage);
}
}
1.1.5. 逻辑运算符(掌握)
逻辑运算符用于连接两个boolean表达式,结果也是boolean类型的。
语法格式为:boolean result = boolean表达式A 逻辑运算符 boolean表达式B;
运算规则如下:

叩丁狼教育Java基础教程
规律:
- 非:取反,!true则false,!false则true
- 与:有false则false
- 或:有true则true
- 异或:^ 相同则false,不同则true
1.1.5.1. 基本使用(掌握)
public class LogicalOperatorDemo1 {
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 30;
//与操作
System.out.println((a > b) & (a > c));// false&false
System.out.println((a > b) & (a < c)); // false&true
System.out.println((a < b) & (a > c)); // true&false
System.out.println((a < b) & (a < c)); // true&true
//或操作
System.out.println((a > b) | (a > c));// false|false
System.out.println((a > b) | (a < c)); // false |true
System.out.println((a < b) | (a > c)); // true|false
System.out.println((a < b) | (a < c)); // true|true
//相反操作
System.out.println((a > b)); // false
System.out.println(!(a > b)); // !false
System.out.println(!!(a > b)); // !!false
}
1.1.5.2. &和&&的区别(掌握)
&:&左边表达式无论真假,&右边表达式都进行运算;
&&:如果&&左边表达式为真,&&右边表达式参与运算,否则&&右边表达式不参与运算,故称短路与。
| 和 || 的区别同理,||,左边为真,右边不参与运算。
public class LogicalOperatorDemo2 {
public static void main(String[] args) {
System.out.println(false & 1 / 0 == 1);//报错,说明右边执行了
System.out.println(false && 1 / 0 == 1);//不报错,说明右边没有执行
System.out.println(true | 1 / 0 == 1);//报错,说明右边执行了
System.out.println(true | 1 / 0 == 1);//不报错,说明右边没有执行
}
}
上述代码,一行一行的测试,测试完,注释该行代码。
1.1.6. 运算优先级
表达式的运算都是有优先级的,基本上和数学中的优先级类似,这里需要注意的是,赋值符号。
注意:赋值符号最后运算的,并且是从右向左运算的。

叩丁狼教育Java基础教程
本系列教程为叩丁狼Java基础班内部教材,若要获得最好的学习效果,需要配合对应教学视频一起学习。需要教学视频,请私信作者即可。