Java中的运算符

运算符是用于数学函数、一些特殊的赋值语句和逻辑比较方面的特殊符号。

赋值运算符("=")

赋值运算符是一个二元运算符(即对两个操作数进行处理),功能是将右侧的操作数赋值给左侧的操作数。

java 复制代码
int a = 100;

该表达式就是将100赋值给a。左侧的操作数必须是一个变量,而右侧的操作数可以是任何表达式。

由于赋值运算符处理时需要先取得右侧的操作数,因此在一个表达式中有两个以上的赋值运算符需要先处理最右边的赋值运算符。

算数运算符

Java中的算数运算符主要有+、-、*、/、%,分别是加、减、乘、除、取余。

java 复制代码
int a = 30;
int b = 20;
a + b;//结果为50
a - b;//结果为10
a * b;//结果为600
a / b;//结果为1(会向下取整)
a % b;//结果为10

其中,+、-还可以作为数值的正负符号如:+5、-7

自增和自减运算符

自增、自减运算符是单目运算符,可以放在操作元之前也可以放在之后

java 复制代码
++a;//表示先自增1再使用a
a++;//表示先使用a再自增
//--同上

比如:

java 复制代码
int a = 1;
int b = a++;//b的值为1
int c = ++a;//c的值为3

比较运算符

比较运算符用于程序中变量之间、变量和自变量之间以及其他类型的信息之间的比较。结果是boolean型的。

比较运算符有:>、<、==、>=、<=、!=

逻辑运算符

逻辑运算符包括&&(逻辑与)、||(逻辑或)、!(逻辑非)

位运算符

"按位与"运算

运算符为"&",如果两个整数数据a、b对应位都是1,则结果才是1,否则为0。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。

"按位或"运算

运算符为"|",如果两个操作数对应位都是0,则结果才是0,否则为1。如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。

"按位取反"运算

运算符为"~",0变1,1变0

"按位异或"运算

运算符为"^",相同为0,相异为1

复合赋值运算符

1.低精度类型自增

在Java编译环境中,整数的默认类型是int型,因此下面的赋值语句会报错

java 复制代码
byte a = 1;
a = a + 1;

但是

java 复制代码
byte a = 1;
a += 1;

这样就不会报错

2.不规则的多值相加

java 复制代码
a = (2 + 3 - 4)* 92 / 6;

如果这段代码要改成使用复合赋值运算符就会变得非常繁琐

三元运算符

三元运算符的使用格式如下:

条件式 ? 值1 : 值2

java 复制代码
boolean b = 20 < 45 ? true : false;

若条件式的值为true,则整个表达式取值1,否则取值2

运算符的优先级

在编写程序时尽量使用圆括号来指定运算次序,以免产生错误的运算顺序。

相关推荐
6***v41713 分钟前
搭建Golang gRPC环境:protoc、protoc-gen-go 和 protoc-gen-go-grpc 工具安装教程
开发语言·后端·golang
1***s63214 分钟前
Rust在WebAssembly中的应用实践
开发语言·rust·wasm
水痕0115 分钟前
go使用cobra来启动项目
开发语言·后端·golang
雨中飘荡的记忆28 分钟前
深入理解设计模式之单例模式
java·设计模式
scixing32 分钟前
函数式编程 第八讲 循环者,递归也
开发语言·c#
程序员西西35 分钟前
Spring Boot整合MyBatis调用存储过程?
java·后端
Ma04071341 分钟前
【机器学习】监督学习、无监督学习、半监督学习、自监督学习、弱监督学习、强化学习
人工智能·学习·机器学习
2501_941879811 小时前
Python在微服务高并发异步API网关请求处理与智能路由架构中的实践
java·开发语言
AAA简单玩转程序设计1 小时前
Java进阶小白手册:基础玩法升级,告别青铜套路
java
whltaoin1 小时前
【 手撕Java源码专栏 】Spirng篇之手撕SpringBean:(包含Bean扫描、注册、实例化、获取)
java·后端·spring·bean生命周期·手撕源码