运算符
按照功能分类
算术运算符
- 加法(+):两数相加。
- 减法(-):两数相减。
- 乘法(*):两数相乘。
- 除法(/):两数相除(注意:当两边都是整型时,结果为整型且向下取整)。
- 取模(%):两数取余(两个数必须是整数)。
自增自减运算符
-
自增(++):将变量的值增加1。分为前缀自增(++i)和后缀自增(i++),区别在于返回值不同。
-
自减(--):将变量的值减少1。同样分为前缀自减(--i)和后缀自减(i--)。
i++和i--的区别
i++
和i--
是两种在编程中常用的自增(increment)和自减(decrement)操作符,它们分别用于将变量的值增加或减少1。这两个操作符的主要区别在于它们对变量值进行操作的方向不同。
-
i++
(后缀自增操作符):- 首先,返回变量
i
的当前值。 - 然后,将变量
i
的值增加1。 - 这意味着,如果你在一个表达式中使用
i++
,该表达式将使用i
的原始值,但在表达式的求值完成后,i
的值会增加。
示例:
int i = 5; int j = i++; // 这里j被赋值为5,然后i变为6
- 首先,返回变量
-
i--
(后缀自减操作符):- 首先,返回变量
i
的当前值。 - 然后,将变量
i
的值减少1。 - 这意味着,如果你在一个表达式中使用
i--
,该表达式将使用i
的原始值,但在表达式的求值完成后,i
的值会减少。
示例:
int i = 5; int j = i--; // 这里j被赋值为5,然后i变为4
- 首先,返回变量
赋值运算符
- 简单赋值(=):将右侧的值赋给左侧的变量。
- 扩展赋值(如+=、-=、*=、/=、%=):先进行算术运算,然后将结果赋值给左侧的变量。
比较运算符(关系运算符)
- 等于(==):比较两个值是否相等。
- 不等于(!=):比较两个值是否不相等。
- 大于(>):比较左侧的值是否大于右侧的值。
- 小于(<):比较左侧的值是否小于右侧的值。
- 大于等于(>=):比较左侧的值是否大于等于右侧的值。
- 小于等于(<=):比较左侧的值是否小于等于右侧的值。
逻辑运算符
- 逻辑与(&&):当且仅当两个表达式都为true时返回true。
- 逻辑或(||):当任意一个表达式为true时返回true。
- 逻辑非(!):取反一个条件表达式的结果。
条件运算符(三元运算符)
- (条件表达式)?表达式1:表达式2:如果条件表达式为true,则结果为表达式1的值;否则为表达式2的值。
位运算符
- 按位与(&):对两个数的二进制进行按位与操作。
- 按位或(|):对两个数的二进制进行按位或操作。
- 按位异或(^):对两个数的二进制进行按位异或操作。
- 按位取反(~):对一个数的二进制进行按位取反操作。
- 左移(<<):将一个数的二进制表示向左移动指定的位数。
- 右移(>>):将一个数的二进制表示向右移动指定的位数(符号位保持不变)。
- 无符号右移(>>>):将一个数的二进制表示向右移动指定的位数,高位补0。
lambda运算符
- ->:用于实现Lambda表达式,简化匿名内部类的书写。
按照操作数个数分类
- 一元运算符:如正号(+)、负号(-)、++、--、!、~等。
- 二元运算符:如+、-、*、/、%、>、<、==、!=、&、|、^等。
- 三元运算符:如(条件表达式)?表达式1:表达式2。
运算符的优先级和结合性
- Java中的运算符具有不同的优先级,决定了在表达式中运算符的计算顺序。优先级高的运算符会先被计算。可以使用括号
()
来改变默认的运算顺序。结合性则决定了在优先级相同的情况下,运算符的计算方向(从左到右或从右到左)。
注意事项
- 在使用除法运算符时,如果操作数都是整型,则结果也会是整型,并且会向下取整。
- 取模运算符的两个操作数都必须是整数。
- 逻辑运算符两边的表达式必须返回布尔值。
- 位运算符只能用于整数类型的数据,不能用于浮点类型和布尔类型的数据。
通过掌握Java中的这些运算符,可以编写出更加复杂和强大的程序。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用