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

news2024/11/13 8:58:44

💻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 = 10
instanceof检查对象是否为某个类的实例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,得到3
  • 3 + "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码表
DecCharDecCharDecCharDecChar
32' '48064@80P
33!49165A81Q
34"50266B82R
35#51367C83S
36$52468D84T
37%53569E85U
38&54670F86V
39'55771G87W
40(56872H88X
41)57973I89Y
42*58:74J90Z
43+59;75K91[
44,60<76L92\
45-61=77M93]
46.62>78N94^
47/63?79O95_
96`112p128144
97a113q129145
98b114r130é146
99c115s131â147
100d116t132ä148
101e117u133à149
102f118v134ç150
103g119w135ê151
104h120x136ë152
105i121y137è153
106j122z138ï154
107k123{139î155
108l124|140ì156
109m125}141Ä157
110n126~142Å158
111o127DEL143É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表达式的编写和优化。

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2148252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Dependency Check:一款针对应用程序依赖组件的安全检测工具

关于Dependency Check Dependency-Check 是一款软件组合分析 &#xff08;SCA&#xff09; 工具&#xff0c;可尝试检测项目依赖项中包含的公开披露的漏洞。它通过确定给定依赖项是否存在通用平台枚举 &#xff08;CPE&#xff09; 标识符来实现此目的。如果找到&#xff0c;它…

Arthas thread(查看当前JVM的线程堆栈信息)

文章目录 二、命令列表2.1 jvm相关命令2.1.2 thread&#xff08;查看当前JVM的线程堆栈信息&#xff09;举例1&#xff1a;展示[数字]线程的运行堆栈&#xff0c;命令&#xff1a;thread 线程ID举例2&#xff1a;找出当前阻塞其他线程的线程 二、命令列表 2.1 jvm相关命令 2.…

展锐平台的手机camera 系统开发过程

展锐公司有自己的isp 图像处理引擎&#xff0c;从2012 年底就开始在智能手机上部署应用。最初的时候就几个人做一款isp的从hal 到kernel 驱动的完整软件系统&#xff0c;分工不是很明确&#xff0c;基本是谁擅长哪些就搞哪些&#xff0c;除了架构和编码实现之外&#xff0c;另外…

Flask项目入门和视图

1、第一个项目的结构 以示例代码中的入口文件app.py为例子 &#xff08;1&#xff09;引入Flask以及创建Flask对象 from flask import Flask app Flask(__name__)&#xff08;2&#xff09; 路由route 视图函数 app.route(/index/) def hello_world():# 响应&#xff1a;…

超详细PS2019安装教程与安装步骤图文解析!保姆级教程!(附赠PS下载地址)

步骤1&#xff1a;下载Adobe Photoshop PS CC 2023下载链接&#xff1a;https://pan.quark.cn/s/f997e116f327 下载完成后&#xff0c;解压文件到当前文件夹&#xff08;随便用什么解压软件都行&#xff0c;现在解压软件都是免费的&#xff0c;没有的到360官网下载360压缩&am…

开源RK3588 AI Module7,并与Jetson Nano生态兼容的低功耗AI模块

RK3588 AI Module7 搭载瑞芯微 RK3588&#xff0c;提供强大的 64 位八核处理器&#xff0c;最高时钟速度为 2.4 GHz&#xff0c;6 TOPS NPU&#xff0c;并支持高达 32 GB 的内存。它与 Nvidia 的 Jetson Nano 接口兼容&#xff0c;具有升级和改进的 PCIe 连接。由于该模块的多功…

Photoshop 2020安装教程

软件介绍 Adobe Photoshop&#xff0c;简称“PS”&#xff0c;是美国Adobe公司旗下最为出名的图像处理软件系列之一。ps 2021新增一键换天空&#xff0c;AI只能滤镜&#xff0c;新增内置的画笔工具极为丰富&#xff0c;成千上万的精致像素、动态和矢量画笔可以满足你的各种绘图…

【Qt | QAction】Qt 的 QAction 类介绍

&#x1f601;博客主页&#x1f601;&#xff1a;&#x1f680;https://blog.csdn.net/wkd_007&#x1f680; &#x1f911;博客内容&#x1f911;&#xff1a;&#x1f36d;嵌入式开发、Linux、C语言、C、数据结构、音视频&#x1f36d; &#x1f923;本文内容&#x1f923;&a…

基于深度学习的手势识别算法(论文复现)

基于深度学习的手势识别算法&#xff08;论文复现&#xff09; 本文所涉及所有资源均在传知代码平台可获取 文章目录 基于深度学习的手势识别算法&#xff08;论文复现&#xff09;概述算法原理核心逻辑效果演示使用方式 概述 本文基于论文 Simple Baselines for Human Pose Es…

在WPF中自定义控件时如何选择基类

在WPF中需要自定义控件&#xff0c;首要要选择需要继承的基类 FrameworkElement 这是常用的最低级的基类。通常&#xff0c;只有当希望重写OnRender()方法并使用DrawingContext从头绘制内容时&#xff0c;才会继承该类。 Control 当从头开始创建控件时&#xff0c;这是最常用…

茴香豆:企业级知识问答工具实践闯关任务

基础任务 在 InternStudio 中利用 Internlm2-7b 搭建标准版茴香豆知识助手&#xff0c;并使用 Gradio 界面完成 2 轮问答&#xff08;问题不可与教程重复&#xff0c;作业截图需包括 gradio 界面问题和茴香豆回答&#xff09;。知识库可根据根据自己工作、学习或感兴趣的内容调…

pytorch学习笔记一:作用、安装和基本使用方法、自动求导机制、自制线性回归模型、常见tensor格式、hub模块介绍

文章目录 一、安装二、基本使用方法①创建一个矩阵②获得随机值③初始化全零矩阵④直接传入数据⑤构建矩阵&#xff0c;然后随机元素值⑥展示矩阵大小⑦矩阵计算8、取索引9、view操作&#xff1a;改变矩阵维度10、与numpy的协同操作 三、自动求导机制1&#xff09;定义tensor成…

【error】The minimum required version for Powerlevel10k is 5.1

文章目录 一、背景二、原因三、解决1、安装 ZSH 最新版本2、效果3、下载了还是显示 ZSH 版本为 5.0.2 怎么办 一、背景 安装 ZSH 主题 Powerlevel10k 时报错&#xff1a; You are using ZSH version 5.0.2. The minimum required version for Powerlevel10k is 5.1. Type ‘ec…

ppt一键生成免费版软件有哪些?如何高效生成论文答辩?

答辩经验丰富的人都知道&#xff0c;制作论文答辩ppt是一项既繁琐又耗时的工作。 我们需要从数万字的论文中提炼关键点&#xff0c;梳理内容的逻辑关系&#xff0c;然后进行细致的排版和美化&#xff0c;最后还要进行反复的检查和试讲。整个过程不仅耗费时间&#xff0c;而且需…

MVP 最简可行产品

MVP&#xff08;最小可行产品&#xff09;是一种产品开发策略&#xff0c;其主要目的是用最少的时间和资源&#xff0c;开发一个包含最基本必要功能的产品。这样做的目的是能够以最小的成本进入市场&#xff0c;获取用户反馈&#xff0c;再根据反馈逐步优化产品。 MVP是什么 …

1网络安全的基本概念

文章目录 网络安全的基本概念可以总结为以下几个方面&#xff1a; 网络安全的需求&#xff1a; 信息安全的重要性&#xff1a;信息安全是计算机、通信、物理、数学等领域的交叉学科&#xff0c;对于社会的发展至关重要。信息安全的目标&#xff1a;主要包括保密性、完整性、可用…

C/S架构与B/S架构的适用场景分析

C/S架构&#xff08;客户端/服务器架构&#xff09;与B/S架构&#xff08;浏览器/服务器架构&#xff09;在适用场景上各有特点&#xff0c;主要取决于应用的具体需求、用户群体、系统维护成本、跨平台需求等因素。 一、C/S架构的适用场景 1、高性能与交互性要求高的应用&…

闯关leetcode——58. Length of Last Word

大纲 题目地址内容 解题代码地址 题目 地址 https://leetcode.com/problems/length-of-last-word/description/ 内容 Given a string s consisting of words and spaces, return the length of the last word in the string. A word is a maximal substring consisting of…

docker从容器提取镜像并上传至dockerhub

一、使用commit从容器中提取镜像 例如 //docker commit 容器名 想要创建的镜像名:版本号 docker commit epsilon_planner epsilon_planner:latest导出完成后镜像如图所示 二、登陆dockerhub并创建仓库 登陆dockerhub&#xff0c;点击Create repository创建仓库&#xff0c…

小程序体验版无法正常请求接口,开启 调试可以正常请求

在本地开发工具可以正常访问小程序&#xff0c;上传代码后打开体验版&#xff0c;界面无法请求接口&#xff0c;手机小程序打开调试模式可以正常访问。这可以查看下小程序后台是否设置了服务器域名以及业务域名 然后查看小程序开发工具 - 详情 - 项目配置 重新上传代码&#xf…