Java运算符有哪些?深入解析Java运算符:从基础到进阶的全方位指南(超全表格)
💻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表达式的编写和优化。
🌷🌷🌷欢迎点赞、评论、收藏和关注~🌷🌷🌷