聊聊java的运算符

java运算符

java运算符的优先级

小编访问各大博客,终于找到了一个口诀:单目乘除为关系,逻辑三目是赋值;当然最前面是()[]下来才是这个口诀,下来小编给大家解读这个口诀,以便大家都能变成java运算符的大侠。

单目:单目运算符+(正)-(负)++,–,!等

乘除:算术单目运算符(+,- * /,%)加减乘除

为:此为为位;就是位运算符(<<,>>)左移右移

关系:关系单目运算符,(<,>,<=,>=,!=)小于,大于,小于等于。大于等于等

逻辑:逻辑单目运算符(&,&&,|,||,^)

三目:三目单目运算符(A>B?A:B)

是:此处为了配和上半句没啥意思

赋值:赋值号=

我相信大家对于这个理解都是问题;

&与&&

相同点:都是逻辑运算符,都是两边为true的时候结果为true,其他为false;
不同点:
&:当他是逻辑运算符的时候,两边都要执行不管左边是不是false。
当他是位运算符的时候,可以进行数字按位运算比如5&4就是0101&0100结果就是0100=4;
&&:短路与,当左边的是false的时候右边不执行返回false

小编当初就是因为这个错了好多题,大家可要眼睛雪亮;

三目运算符

再来说说三目运算符

char x ='x';
int i=10;
System.out.println(true?x:i);
System.out.println(true?'x':10);

相信不少人一开始回写x,x;
当然小编一开始也是这种想法,但是这是错的,
三目运算符会根据运算符的精度类型进行相应的转换;第一个i是int类型,所以最后精度类型被提升为int类型,‘x’的ascii是120所以结果应该是120,
若三目运算符中的两个表达式有一个是常量表达式,另一个是类型T的表达式,且常量表达式可以被T表示,则输出结果是T类型,对于第二行输出,10是常量,所以输出应该是10;

%与/

System.out.println(-5%-3);
System.out.println(-5%3);
System.out.println(5%-3);
System.out.println(5%3);
System.out.println(-5/-3);
System.out.println(-5/3);
System.out.println(5/-3);
System.out.println(5/3);

结果-2
-2
2
2
1
-1
-1
1

可以见得两个数字相%余数的正负看第一个数字的正负,第一个数字是正就是正,第一个数字是负就是负
两个数字相/,结果和平时算法一样,一正一负结果为负,两正结果为正,两负结果为负。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值