Java运算符有哪些?深入解析Java运算符:从基础到进阶的全方位指南(超全表格)

2025-06-07 15:41:56

💻1.前言

在编程中,运算符是处理数据和变量的基本工具。它们不仅使得代码更加简洁,还能极大地提高编程效率。本文还提供了详细的 Java运算符参考表格,涵盖了算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、三元运算符以及 instanceof 操作符

instanceof 操作符后面多态中的学习会提及,可以先简单了解

这些运算符是Java 编程中不可或缺的部分,掌握它们能够帮助开发者更加高效地编写代码。

💻2.什么是运算符,什么是表达式?

运算符和表达式在编程中密不可分,二者共同构成了代码中的核心计算逻辑。

表达式是由运算符、变量和常量组成的代码结构,最终可以被计算为一个结果。表达式的核心是运算符,而变量和常量则是被运算符操作的对象。

📌运算符

运算符是对常量或者变量进行操作的符号,简单点说就类似于我们小学学习的+、-、×、÷

🌟运算符分类

算术运算符:用于执行基本的数学运算,如加法、减法、乘法和除法。例如,+ 运算符用于两个值的加法。

关系运算符:用于比较两个值的大小和关系,如等于、不等于、大于和小于。例如,== 运算符用于判断两个值是否相等。

逻辑运算符:用于进行逻辑操作,如与(AND)、或(OR)和非(NOT)。例如,&& 运算符用于逻辑与运算。

赋值运算符:用于将右侧的值赋给左侧的变量,并支持复合操作。比如,+= 运算符用于将右侧的值加到左侧的变量上。

位运算符:用于对整数类型的数据进行按位操作,如按位与、按位或和按位异或。例如,& 运算符用于按位与运算。

三元运算符:一种简洁的条件判断方式,基于条件表达式的真假返回两个值中的一个。例如,?: 运算符用于根据条件选择值。

instanceof运算符:用于判断对象是否为某个特定类的实例。例如,instanceof 运算符可以检查一个对象是否是某个类或接口的实例。

📌表达式

用运算符把常量或者变量连接起来的,符合Java语法的式子就是表达式,比如 1+1 或者 a+b 就是一个表达式

💻运算符一览表

这张表格通过清晰的分类和具体的示例,旨在帮助 Java 程序员快速掌握常用运算符的使用方法。无论你是 Java 编程的新手还是有经验的开发者,这份参考表格都将成为你日常编程的重要工具。

运算符描述示例输出算术运算符+加法运算,连接字符串int a = 5 + 3; String s = "Hello " + "World"; a = 8

s = "Hello World"

-减法运算int b = 10 - 2;b = 8*乘法运算int c = 4 * 2;c = 8/除法运算int d = 8 / 2;d = 4%取余运算(求模)int e = 7 % 3;e = 1++自增运算int f = 5; f++;f = 6--自减运算int g = 5; g--;g = 4关系运算符==等于boolean h = (5 == 3);h = false!=不等于boolean i = (5 != 3);i = true>大于boolean j = (5 > 3);j = true<小于boolean k = (5 < 3);k = false>=大于等于boolean l = (5 >= 3);l = true<=小于等于boolean m = (5 <= 3);m = false逻辑运算符&&短路逻辑与(AND)boolean n = (5 > 3 && 5 < 10);n = true||短路逻辑或(OR)boolean o = (5 < 3 || 5 < 10);o = true!逻辑非(NOT)boolean p = !(5 > 3);p = false赋值运算符=赋值int q = 5;q = 5+=加赋值int r = 5; r += 3;r = 8-=减赋值int s = 5; s -= 3;s = 2*=乘赋值int t = 5; t *= 3;t = 15/=除赋值int u = 10; u /= 2;u = 5%=取余赋值int v = 7; v %= 3;v = 1位运算符&按位与、逻辑与int w = 5 & 3;w = 1|按位或、逻辑或int x = 5 | 3;x = 7^按位异或int y = 5 ^ 3;y = 6~按位取反int z = ~5;z = -6<<左移int aa = 5 << 1;aa = 10>>右移int bb = 5 >> 1;bb = 2>>>无符号右移int cc = 5 >>> 1;cc = 2三元运算符?:条件运算符(三元运算符)int dd = (5 > 3) ? 10 : 20;dd = 10instanceof检查对象是否为某个类的实例String str = "Hello"; boolean ee = str instanceof String;ee = true

📌算数运算符

+、-、*、÷、/、++、--

🌟+

普通操作

加法运算跟我们平时的计算并无二致

示例代码:

int a = 1;

int b = 2;

int sum = a + b;//sum = 3

需要注意的是+的字符串操作和+的字符操作

字符串操作

当+操作中出现字符串时,此时就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。当连续进行+操作时,从左到右逐个执行的。

示例代码:

String a = 1 + 2 + "abc" + 2 + 1;

System.out.println(a); //3abc21

代码解析:

1 + 2,得到33 + "abc",得到"3abc""3abc" + 2,得到"3abc2""3abc2" + 1,得到最终结果"3abc21"

注意:有字符串参与的运算都会得到一个新的字符串

字符操作

当+操作中出现了字符,会拿着字符到计算机内置的ASCII码表中去查对应的数字,然后再进行计算。

示例代码:

char c = 'a';

int result = c + 0;

System.out.println(result);//97

记忆(字符a与A对应的ASCII码表值):

'a' —— 97

'A' —— 65

不过在这,我也给大家准备了ASCII码表,方便大家查询

ASCII码表

DecCharDecCharDecCharDecChar32' '48064@80P33!49165A81Q34"50266B82R35#51367C83S36$52468D84T37%53569E85U38&54670F86V39'55771G87W40(56872H88X41)57973I89Y42*58:74J90Z43+59;75K91[44,60<76L92\45-61=77M93]46.62>78N94^47/63?79O95_96`112p12814497a113q12914598b114r130é14699c115s131â147100d116t132ä148101e117u133à149102f118v134ç150103g119w135ê151104h120x136ë152105i121y137è153106j122z138ï154107k123{139î155108l124|140ì156109m125}141Ä157110n126~142Å158111o127DEL143É159

🌟- 、*

减法和乘法都遵循基本的数学运算规则

减法示例代码:

int c = 10;

int d = 4;

System.out.println(c - d); //6

乘法示例代码:

int c = 10;

int d = 4;

System.out.println(c * d); //40

🌟/、%

/

/是除的符号,求商

在整数的除法运算上,除法的运算依然遵循我们常用的数学运算但是在小数的运算中,Java中除法的运算就和我们实际生活中的数学运算有所不同了

整数相除结果只能得到整除,如果结果想要是小数,必须要有小数参数。

示例代码:

System.out.println( 10 / 3);//3

System.out.println(10.0 / 3);//3.3333333333333335

小数直接参与运算,得到的结果有可能是不精确的。

%

%是取模符号,也就是求余数,为什么把%和÷放在一起讲呢?因为%做的也是除法,只是在最后取得是余数而已

示例代码:

System.out.println(10 % 2);//0

System.out.println(10 % 3);//1

🌟自增自减运算符++、--

++ 自增运算符【++:就是把变量里面的值+1】

-- 自减运算符【--:就是把变量里面的值-1】

使用方式:

放在变量的后面,我们叫做后++。 比如:a++【先运算后++】

示例:

int a = 10;

int b = a++; //b = 10, a = 11 放在变量的前面,我们叫做先++。 比如:++a【先++后运算】

示例:

int a = 10;

int b = ++a; //b = 11, a = 11 不管是先++,还是后++。单独写在一行的时候,运算结果是一模一样的。

示例:

a++;

++a;

📌关系运算符

也就是比较运算符,本质就是表达式左右两边进行了判断

==、!=、>、<、>=、<=

各关系运算符的作用与返回值

符号解释==就是判断左边跟右边是否相等,如果成立就是true,如果不成立就是false!=就是判断左边跟右边是否不相等,如果成立就是true,如果不成立就是false>就是判断左边是否大于右边,如果成立就是true,如果不成立就是false>=就是判断左边是否大于等于右边,如果成立就是true,如果不成立就是false<就是判断左边是否小于右边,如果成立就是true,如果不成立就是false<= 就是判断左边是否小于等于右边,如果成立就是true,如果不成立就是false

总结:

关系运算符最终的结果一定是布尔类型的。要么是true,要么是false

示例代码

==等于(Java中的等号是由两个=组成的)

public class Main {

public static void main(String[] args) {

int a = 100;

int b = 100;

System.out.println(a == b); // 输出: true

}

}

!=不等号

public class Main {

public static void main(String[] args) {

int a = 10;

int b = 20;

System.out.println(a != b); // 输出: true

}

}

>大于号

public class Main {

public static void main(String[] args) {

int a = 10;

int b = 5;

System.out.println(a > b); // 输出: true

}

}

>=大于等于号

public class Main {

public static void main(String[] args) {

int a = 5;

int b = 5;

System.out.println(a >= b); // 输出: true

}

}

<小于号

public class Main {

public static void main(String[] args) {

int a = 3;

int b = 7;

System.out.println(a < b); // 输出: true

}

}

<=小于等于号

public class Main {

public static void main(String[] args) {

int a = 9;

int b = 10;

System.out.println(a <= b); // 输出: true

}

}

📌逻辑运算符

我们可以把一些位运算符加入到此段内一起讨论

&、|、^、!、&&、||

🌟& 与 |

&:逻辑与(而且)

两边都为真,结果才是真,只要有一个为假,那么结果就是假。

代码示例:

// & //两边都是真,结果才是真。

System.out.println(true & true);//true

System.out.println(false & false);//false

System.out.println(true & false);//false

System.out.println(false & true);//false

|:逻辑或(或者)

两边都为假,结果才是假,只要有一个为真,那么结果就是真。

代码示例:

// | 或 //两边都是假,结果才是假,如果有一个为真,那么结果就是真。

System.out.println(true | true);//true

System.out.println(false | false);//false

System.out.println(true | false);//true

System.out.println(false | true);//true

🌟短路逻辑运算符&& 与 ||

&&:

运算结果跟&是一模一样的,只不过具有短路效果。

||:

运算结果跟|是一模一样的。只不过具有短路效果。

那什么是短路效果呢?

&:两边都为真,结果才是真,只要有一个为假,那么结果就是假。

我们程序从左到右执行,左边的为假就可以不用对右边进行运算了,整个的结果就为假

|:两边都为假,结果才是假,只要有一个为真,那么结果就是真。

我们程序从左到右执行,左边的为真就可以不用对右边进行运算了,整个的结果就为真

逻辑核心:

当左边不能确定整个表达式的结果,右边才会执行。

当左边能确定整个表达式的结果,那么右边就不会执行了。

作用:

&& 和 & 、||和|的运行结果都是一模一样的。

但是短路逻辑运算符可以提高程序的运行效率。

建议:

最为常用(推荐使用): &&、 ||

🌟!取反

!是取反,也叫做非。

计算规则:false取反就是true,true取反就是false

温馨提示:取反最多只用一个。

代码示例:

System.out.println(!false);//true

System.out.println(!true);//false

System.out.println(!!false);//注意点:取反最多只用一个。

🌟^ 异或

计算规则:如果两边相同,结果为false,如果两边不同,结果为true

代码示例:

//左右不相同,结果才是true,左右相同结果就是false

System.out.println(true ^ true);//false

System.out.println(false ^ false);//false

System.out.println(true ^ false);//true

System.out.println(false ^ true);//true

📌赋值运算符

=、+=、-=、*=、/=、%=

🌟=

这是我们编程中最常用的赋值运算符,注意这个不是等于号!

运算过程:就是把等号右边的结果赋值给左边的变量

示例代码:

//1.最为简单的赋值运算符用法

int a = 10;//就是把10赋值给变量a

System.out.println(a);

//2.如果等号右边需要进行计算。

int b = 20;

int c = a + b;//先计算等号右边的,把计算的结果赋值给左边的变量

System.out.println(c);

//3.特殊的用法

a = a + 10;//先计算等号右边的,把计算的结果赋值给左边的变量

System.out.println(a);//20

🌟扩展赋值运算符

+=、-=、*=、/=、%=

运算规则:就是把左边跟右边进行运算,把最终的结果赋值给左边,对右边没有任何影响。

示例代码:

int a = 10;

int b = 20;

a += b;//把左边和右边相加,再把最终的结果赋值给左边,对右边没有任何影响

// 相当于 a = a + b;

System.out.println(a);//30

System.out.println(b);//20

注意:扩展的赋值运算符中隐层还包含了一个强制转换。

以+=为例。

a += b ;实际上相当于 a = (byte)(a + b);

因为byte类型在运算时会自动强转为int

byte a = 10;

byte b = 20;

//a += b;

a = (byte)(a + b);

System.out.println(a);//30

📌三元运算符

又叫做:三元表达式或者问号冒号表达式。作用有点类似于if,但是if能实现的功能更为全面

格式:关系表达式 ? 表达式1 :表达式2 ;

计算规则:

计算关系表达式的值。

如果关系表达式的值为真,那么执行表达式1。

如果关系表达式的值为假,那么执行表达式2。

注意点:

三元运算符的最终结果一定要被使用,要么赋值给一个变量,要么直接打印出来。

示例:

//需求:求两个数的较大值

int a = 10;

int b = 20;

//注意点:

//三元运算符的最终结果一定要被使用。

//要么赋值给一个变量,要么直接输出。

int max = a > b ? a : b ;

System.out.println(max);

📌<<、>>

🌟<<:向左移动,低位补0

如:int a = 200;

a << 2

把我们定义的整数转换为二进制的形式展示出来:

0000 0000 0000 0000 0000 0000 1100 1000

向左移动,低位补0,得到:

00 | 00 0000 0000 0000 0000 0000 1100 1000 00 | = 800

最后面两个红色的0就是整体向左移动两位补上去的,将其转换为十进制为:800

相当于位移一位即×2

由此得 a << n 等于 a * 2^n

🌟>>:向右移动,高位补0 ,如果本来是负数则最高位补1

如:int a = 200;

a >> 2

把我们定义的整数转换为二进制的形式展示出来:

0000 0000 0000 0000 0000 0000 1100 1000

向右移动,高位补0 ,如果本来是负数则最高位补1,得到:

00 | 0000 0000 0000 0000 0000 0000 1100 10 | 00 = 50

最前面两个红色的0就是整体向右移动两位补上去的,将其转换为十进制为:50

相当于位移一位即÷2

由此得 a >> n 等于 a * 1/2^n

💻小结

通过本篇文章的学习,我们深入了解了Java编程中的各种运算符及其使用方法。文章从最基础的运算符概念入手,逐步介绍了算术运算符、关系运算符、逻辑运算符等常用运算符的使用场景与具体功能,并附上了详细的运算符一览表。同时,文章还涉及了自增自减运算符、三元运算符、位移运算符等进阶内容,帮助读者更好地掌握Java表达式的编写和优化。

🌷🌷🌷欢迎点赞、评论、收藏和关注~🌷🌷🌷