【Java 基础篇】Java 运算符宝典:Java编程的关键

2023-09-01 08:53:41

在这里插入图片描述

在Java编程中,运算符是用于执行各种操作的特殊符号。它们可以用于操作各种数据类型,执行算术、逻辑和比较等操作。本篇博客将详细介绍Java中常见的运算符,以及它们的使用和示例。

算术运算符

算术运算符用于执行基本的数学运算,如加法、减法、乘法和除法。

加法运算符(+)

加法运算符用于将两个值相加,并返回它们的和。

示例:

int a = 5;
int b = 3;
int result = a + b; // 结果为8

减法运算符(-)

减法运算符用于从一个值中减去另一个值,并返回差值。

示例:

int a = 8;
int b = 4;
int result = a - b; // 结果为4

乘法运算符(*)

乘法运算符用于将两个值相乘,并返回它们的积。

示例:

int a = 6;
int b = 7;
int result = a * b; // 结果为42

除法运算符(/)

除法运算符用于将一个值除以另一个值,并返回商。注意,整数除法将丢弃余数,只返回商。

示例:

int a = 10;
int b = 3;
int result = a / b; // 结果为3

取模运算符(%)

取模运算符用于计算两个值相除后的余数。

示例:

int a = 10;
int b = 3;
int result = a % b; // 结果为1

赋值运算符

赋值运算符用于将一个值赋给变量。

简单赋值运算符(=)

简单赋值运算符将右边的值赋给左边的变量。

示例:

int a = 5;
int b;
b = a; // b的值现在也为5

复合赋值运算符(+=、-=、*=、/=、%=)

复合赋值运算符将算术运算符与赋值运算符结合在一起,用于执行运算并将结果赋给左边的变量。

示例:

int a = 10;
a += 5; // 相当于 a = a + 5,a的值变为15

比较运算符

比较运算符用于比较两个值的大小关系。

相等运算符(==)

相等运算符用于检查两个值是否相等,如果相等则返回true,否则返回false

示例:

int a = 5;
int b = 5;
boolean result = a == b; // 结果为true

不相等运算符(!=)

不相等运算符用于检查两个值是否不相等,如果不相等则返回true,否则返回false

示例:

int a = 5;
int b = 3;
boolean result = a != b; // 结果为true

大于运算符(>)和小于运算符(<)

大于运算符用于检查一个值是否大于另一个值,小于运算符用于检查一个值是否小于另一个值。如果条件满足,则返回true,否则返回false

示例:

int a = 8;
int b = 6;
boolean result1 = a > b; // 结果为true
boolean result2 = a < b; // 结果为false

大于等于运算符(>=)和小于等于运算符(<=)

这两个运算符分别用于检查一个值是否大于等于另一个值,以及是否小于等于另一个值。如果条件满足,则返回true,否则返回false

示例:

int a = 8;
int b = 6;
boolean result1 = a >= b; // 结果为true
boolean result2 = a <= b; // 结果为false

逻辑运算符

逻辑运算符用于执行逻辑操作,如与、或、非。

与运算符(&&)

与运算符用于检查多个条件是否同时满足。如果所有条件都满足,则返回true,否则返回false

示例:

boolean condition1 = true;
boolean condition2 = false;
boolean result = condition1 && condition2; // 结果为false

或运算符(||)

或运算符用于检查多个条件是否至少有一个满足。如果至少有一个条件满足,则返回true,否则返回false

示例:

boolean condition1 = true;
boolean condition2 = false;
boolean result = condition1 || condition2; // 结果为true

非运算符(!)

非运算符用于取反一个条件的值,如果条件为true,则返回false,如果条件为false,则返回true

示例:

boolean condition = true;
boolean result = !condition; // 结果为false

位运算符

位运算符用于对整数的二进制位进行操作。

按位与运算符(&)

按位与运算符对两个整数的二进制位进行与操作,只有在对应位都为1时,结果位才为1。

示例:

int a = 5; // 二进制为 0101
int b = 3; // 二进制为 0011
int result = a & b; // 结果为 0001,即1

按位或运算符(|)

按位或运算符对两个整数的二进制位进行或操作,只要对应位之一为1,结果位就为1。

示例:

int a = 5; // 二进制为 0101
int b = 3; // 二进制为 0011
int result = a | b; // 结果为 0111,即7

按位异或运算符(^)

按位异或运算符对两个整数的二进制位进行异或操作,只有在对应位不同时为1时,结果位才为1。

示例:

int a = 5; // 二进制为 0101
int b = 3; // 二进制为 0011
int result = a ^ b; // 结果为 0110,即6

按位取反运算符(~)

按位取反运算符对一个整数的二进制位进行取反操作,即将0变为1,1变为0。

示例:

int a = 5; // 二进制为 0101
int result = ~a; // 结果为 1010,即 -6

位移运算符

位移运算符用于对整数的二进制位进行左移或右移操作。

左移运算符(<<)

左移运算符将一个整数的二进制位向左移动指定的位数,右侧用0填充。

示例:

int a = 5; // 二进制为 0000 0101
int result = a << 2; // 结果为 0001 0100,即20

右移运算符(>>)

右移运算符将一个整数的二进制位向右移动指定的位数,左侧用符号位填充(正数用0,负数用1)。

示例:

int a = -10; // 二进制为 1111 1111 1111 1111 1111 1111 1111 0110
int result = a >> 2; // 结果为 1111 1111 1111 1111 1111 1111 1111 1101,即 -3

无符号右移运算符(>>>)

无符号右移运算符将一个整数的二进制位向右移动指定的位数,左侧用0填充。

示例:

int a = -10; // 二进制为 1111 1111 1111 1111 1111 1111 1111 0110
int result = a >>> 2; // 结果为 0011 1111 1111 1111 1111 1111 1111 1101,即 1073741821

条件运算符(三元运算符)

条件运算符(? : )是一种简洁的运算符,用于根据条件的真假选择不同的值。

示例:

int a = 5;
int b = 3;
int max = (a > b) ? a : b; // 如果a大于b,max为a,否则为b

instanceof运算符

instanceof运算符用于检查一个对象是否是指定类的一个实例。

示例:

class Vehicle {}
class Car extends Vehicle {}

Car car = new Car();
boolean result = car instanceof Vehicle; // 结果为true

运算符优先级

下面是常见的Java运算符按照优先级从高到低列成的表格:

运算符描述结合性
()圆括号,用于改变运算顺序从左到右
[]数组索引访问从左到右
.成员访问操作符从左到右
!逻辑非(取反)从右到左
~按位取反从右到左
++, –前缀递增和递减,后缀递增和递减从右到左
*, /, %乘法,除法,取模从左到右
+, -加法,减法从左到右
<<, >>, >>>左移,右移,无符号右移从左到右
<, <=, >, >=小于,小于等于,大于,大于等于从左到右
instanceof检查对象是否是指定类的实例从左到右
==, !=相等,不相等从左到右
&按位与从左到右
^按位异或从左到右
|按位或从左到右
&&逻辑与从左到右
||逻辑或从左到右
?:条件运算符从右到左
=, +=, -=, *=, /=, %=赋值,复合赋值运算符从右到左
&=, ^=, |=, <<=, >>=, >>>=位运算符与赋值运算符从右到左

请注意,表格中的结合性表示运算符在表达式中具有的结合方向,从左到右表示从左到右结合,从右到左表示从右到左结合。优先级高的运算符在表达式中优先计算。

总结

这篇博客介绍了Java中常见的运算符,包括算术运算符、赋值运算符、比较运算符、逻辑运算符、位运算符、位移运算符、条件运算符和instanceof运算符。通过熟悉这些运算符的用法,你可以更灵活地处理各种数据操作和逻辑判断。希望这篇博客能够帮助你更深入地理解Java中运算符的作用和应用。

更多推荐

C#控制台程序中使用log4.net来输出日志

Apachelog4net库是一个帮助程序员将日志语句输出到各种输出目标的工具。log4net是优秀的Apachelog4j™框架到Microsoft®.NE​​T运行时的端口。我喜欢他可以自定义输出,区分等级等特点。导入库我们在工程里添加NuGet的包。输入名称log4net,导入包。创建配置文件然后我们在项目根创建

北邮22级信通院数电:Verilog-FPGA(3)实验“跑通第一个例程”modelsim仿真及遇到的问题汇总(持续更新中)

北邮22信通一枚~跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章持续关注作者迎接数电实验学习~获取更多文章,请访问专栏:北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客注意:本篇文章所有绝对路径的展示都来自上一篇博客北邮22级信通院数电:Verilog-FPGA(2)modelsim北邮信通专属下

蓝蓝设计提供气象行业软件设计

北京蓝蓝设计在气象行业软件界面设计方面具有成功的案例和丰富的经验。蓝蓝与多家气象行业软件开发商合作,为其设计了一系列优秀的界面,得到了客户的高度认可和好评。我们的设计作品不仅满足了客户的需求,还提升了软件的品牌形象和竞争力。北京蓝蓝设计还致力于学习和应用最新的设计技术和工具。我们紧跟行业发展的脚步,不断更新自己的设计理

JMeter 设置请求头信息的详细步骤

在使用JMeter的过程中,我们会遇到需要设置请求头信息的场景。比如:POST传过去的Body数据是json格式的。需要填添加头信息:Content-Type:application/json。在header中用token来传用户的认证信息。下面,来具体介绍下JMeter设置HTTP请求头的方法。1添加请求头右击HTT

Jmeter系列-并发线程Concurrency Thread Group的介绍(7)

简介ConcurrencyThreadGroup提供了用于配置多个线程计划的简化方法,该线程组目的是为了保持并发水平,意味着如果并发线程不够,则在运行线程中启动额外的线程ConcurrencyThreadGroup提供了更好的用户行为模拟,因为它使您可以更轻松地控制测试的时间,并创建替换线程以防线程在过程中完成现在安装

Jmeter系列-控制器Controllers的介绍(8)

Controllers简介JMeter是一款功能强大的性能测试工具,而控制器是JMeter中非常重要的一个组件。控制器用于控制测试计划的执行流程,可以根据需求来控制线程的启动、停止、循环等操作。Jmeter有两种类型的控制器:Samplers(取样器)和LogicalControllers(逻辑控制器);它们驱动着测试

Jmeter —— 常用的几种断言方法(基本用法)

在使用JMeter进行性能测试或者接口自动化测试工作中,经常会用到的一个功能,就是断言,断言相当于检查点,它是用来判断系统返回的响应结果是否正确,以此帮我们判断测试是否通过,本文主要介绍几种常用的断言:响应断言、JSON断言、BeanShell断言一、响应断言1.响应断言是最常用的一种断言方法,它可以对各种返回类型的结

四、数学建模之图与网络模型

1.定义2.例题及软件代码求解一、定义1.图和网络是相关概念(1)图(Graph):图是数学和计算机科学中的一个抽象概念,它由一组节点(顶点)和连接这些节点的边组成。图可以是有向的(有方向的,边有箭头表示方向)或无向的(没有方向的,边没有箭头表示方向)。图用于表示各种关系,如社交网络、电路、地图、组织结构等。(2)网络

leetcode做题笔记147. 对链表进行插入排序

给定单个链表的头head,使用插入排序对链表进行排序,并返回排序后链表的头。插入排序算法的步骤:插入排序是迭代的,每次只移动一个元素,直到所有元素可以形成一个有序的输出列表。每次迭代中,插入排序只从输入数据中移除一个待排序的元素,找到它在序列中适当的位置,并将其插入。重复直到所有输入数据插入完为止。下面是插入排序算法的

免费可源可商用的BI工具对比(支持Doris 数据库)

目前市面上有很多开源的BI工具可供选择,以下是几个免费、开源且可以商用的BI工具,并且支持和Doris数据库结合使用:Superset:由Airbnb发起的开源BI工具,带有可视化和交互式仪表盘功能。Superset支持多种数据源,其中包括Doris数据库。Metabase:一个简单易用的BI工具,支持数据可视化和SQ

全链路自动化测试

背景从SOA架构到现在大行其道的微服务架构,系统越拆越小,整体架构的复杂度也是直线上升,我们一直老生常谈的微服务架构下的技术难点及解决方案也日渐成熟(包括典型的数据一致性,系统调用带来的一致性问题,还是跨节点跨机房复制带来的一致性问题都有了很多解决方案),但是有一个环节我们明显忽略了。在现在的微服务架构趋势下,微服务在

热文推荐