Java中的运算符

算术运算符

运算符运算运算符运算
+正号%取模(取余)
-负号++自增(前缀式、后缀式)
+- -自减(前缀式、后缀式)
-+字符串连接
*
/

注意事项

  • “前缀式” 如:b = ++a。先进行a++运行,再对b赋值。
  • “后缀式” 如:b = a++。先对b赋值,再进行a++运行。
  • 自增和自减运算并不改变变量本身的数据类型。
//”后缀式“
int a = 4;
int b = a++;//则b = 4;a = 5;
//”前缀式“
int a = 4;
int b = ++a;//则b = 5;a = 5;
//自增和自减不改变变量本身的类型
byte a = 4;
byte b = a++;//a进行自增运算后,其类型依然是byte类型

byte a = 4;
int b = a + 1;//a与常量进行计算(常量默认是int类型的),其结果必须为int型。

赋值运算符

  • 赋值运算符:=。扩展复制运算符:+=、-=、*=、/=、%=
  • 赋值运算符不改变变量本身的数据类型。
  • “将一个对象赋值给另外一个对象”:a = b,此时将b引用的地址赋值给a,a和b指向同一个对象。

关系运算符

运算符运算运算符运算
==等于>=大于等于
!=不等于<=小于等于
>大于instanceof检查是否是某个类的对象
<小于

注意事项

  • 比较运算符的结果都是boolean类型的:false 或 true。
  • == 和 equals()方法:
    1) == 可以比较基本数据类型,又可以比较引用数据类型。equals()方法只能比较引用数据类型。
    2)== 比较引用数据类型时,比较的是对象的引用,而不是对象本身。equals()方法默认比较是对象的引用,但可以通过对其重写比较引用的实际内容。

逻辑运算符

运算符运算运算符运算
&逻辑与&&短路与
|逻辑或||短路或
!逻辑非^逻辑异或

注意事项

  • 逻辑运算符的操作对象都是布尔类型的
  • & 与 &&(| 和 || 类似)
    当符号左边是false时,&继续执行符号右边的运行,&&不再执行符号右边的计算。当符号左边是true时,无影响。
1.相同点:&&& 的运算结果相同
2.不同点:
int a = 1;
int b = 2;
if((a > b) & ( ++a > b)) //a > b 的结果是false,&运算中会继续执行++a > b 的运算,结果为:false
if((a > b) && ( ++a > b))//a > b 的结果是false,&&运算中不会执行++a > b 的运算,结果为:false
  • 罗辑异或:同为false或true时,结果为:false;否则结果为:true。

三元(目)运算符

(条件表达式) ? 表达式1:表达式2 条件表达式为true,运算结果为表达式1;条件表达式为false,运算结果为表达式2。

  • 三元运算符可以转换成if else的形式,缺点是:三元运算符有时候表达较为复杂,不容易理解。优点是:效率相对较高。

位运算符

运算符运算运算符运算
<<左移&与运算
>>右移|或运算
>>>无符号右移~取反运算
^异或运算

注意事项

  • 位运算只可以用来处理整数类型,直接对整数的二进制位进行运算
  • char、byte、short类型进行移位运算时,会先被转换成 int 类型的值
  • <<:在一定范围内,每左移1位,相当于*2;<<:在一定范围内,每右移1位,相当于/2。
  • <<:左移运算低位补0;<<:右移运算根据符号位选择在高位补0或1;>>>:无符号右移高位补0。
  • 常用: m = ( m ^ n ) ^ n。

运算符的优先级

由于优先级比较多,通常情况下我们使用括号明确其计算顺序即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值