Java运算符

运算符分类

编号类型
1算术运算符 (+,-,*,/,%,++,–)
2关系运算符 (>,<,>=,<=,==,!=)
3逻辑运算符 (!,&&,||)
4位运算符 (>>,<<,>>>,&,|,^,~ )
5赋值运算符 (=,及 其 扩 展 赋 值 运 算 符 如 +=)
6条件运算符( ?:)
7其它运算符

算术运算符

符号名称优先级类型
+正号从右到左单目
-负号从右到左单目
+从左到右双目
-从左到右双目
*从左到右双目
/从左到右双目
%取余从左到右双目
++自增从右到左单目
- -自减从右到左单目

问题1:

//当j=0时,j+=(++j)+(j++) 这条式子的值是多少?
int j = 0;
System.out.println(j+=(++j)+(j++));

运行结果是:2



我们将式子还原一下:

如果j=0

j+=(++j)+(j++)  
原式子:
    0+=(1)+(1)
最终结果是:2

如果j=1

j+=(++j)+(j++)  
原式子:
    1+=(2)+(2)
最终结果是:5

如果j=2

j+=(++j)+(j++)  
原式子:
    2+=(3)+(3)
最终结果是:8

得出来的结论是:

++j :先运算后执行
j++ :先执行后运算
因为不管是(++j) 还是 (j++) 都会影响它本身。




问题2:

      如果定义一个byte类型的变量等于127,然后执行+1操作会是什么结果?

public class Demo{
        public static void main(String args[]){
                //循环了,跳出,原因是byte类型范围是-128-127
                //当循环到127时,会向左位移1位变成-128
                //所以会一直循环
                for(byte i =0 ;i < 200;i++){
                        System.out.println(i++);
                }
        }   
}

1

得出来的结果是: 在-128 到 127 范围内无限循环。

原因是

byte a = 127;
//加运算符是会自动转换的,所以不会出错
System.out.println(a + 1);

2


Linux 命令:

>  在LINUX下是标准输出
<  在linux下是标准输入

逻辑运算符

符号名称优先级类型
小于从左到右双目
<=小于等于从左到右双目
>大于从左到右双目
>=大于等于从左到右双目
==等于从左到右双目
!=不等于从左到右双目
&按位与从左到右双目
|按位或从左到右双目
^按位异或从左到右双目
&&短路与从左到右双目
||短路或从左到右双目



  • 理论归理论,还要多练习,这里拿 && 跟 || 来测试
int i =0;
if((2-1>0) || (1==++i)){
    System.out.println(i);
}

结果为0
因为||运算符中,前面有个为true时(2-1>0),后面的都不会执行


int i =0;
if((2-1>10) && (1==++i)){
    System.out.println(i);
}
System.out.println("第二行 i=" + i);

结果是不执行。
因为(2-1>10)不成了,所以下面的都不执行


位运算符

符号名称优先级类型
<<左移位运算符从左到右双目
>>带符号右位移运算符从左到右双目
>>>无符号右移从左到右双目
小于从左到右双目
<=小于或等于从左到右双目
>大于从左到右双目
>=大于或等于从左到右双目

赋值运算符

符号名称优先级类型
=赋值运算符从右到左双目
+=混合赋值运算符
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
>>>=

条件运算符

符号名称优先级类型
?:条件运算符从右到左三目

其他运算符

符号名称优先级类型
.从左到右双目
( )圆括号从左到右
[ ]方括号从左到右
instanceof确定某对象是否属于指定的类从左到右双目
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值