java基础之运算符

来源:互联网 发布:淘宝客营销案例 编辑:程序博客网 时间:2024/06/05 11:47

算术运算符
+ - * / % ++ - -加减乘除取余自加自减
这里说一下除法运算:如果两个数都是整数,计算结果也是整数,不能够整除进行四舍,不进行五入;如果两个数有一个是浮点数,得到的结果是自然除法,除数可以为0或0.0,结果是无穷大或无穷小

            float f= 2.1f;            int g=6;            System.out.println(g/f);            System.out.println(f/0);

得到的结果是

2.857143
Infinity

取余运算,就是求余数,得到的结果不一定都是整数。若两个数都是整数,除数不能为零,否则会出现异常,如果两个数中有一个数浮点数,怎除数可以为0 ,得到的结果是非数-NaN

            System.out.println(5 % 0.0);//得到的结果:NaN            System.out.println(-5.0 % 0);//得到的结果:NaN            System.out.println(0 % 5.0);//得到的结果:0.0            System.out.println(0 % 0.0);//得到的结果:NaN            System.out.println(-5 % 0);//得到的结果:出现异常,Exception in thread "main" java.lang.ArithmeticException: / by zero

++自加 - -自减 a++,++a,b- -,- -b,当自加自减在操作数左边时表示先加1再赋值,在右边时,先赋值再加1

            int a= 5;            int b=a++ +6;            System.out.println(b);//结果:11            int c = ++a +6;            System.out.println(c);//结果:13

赋值运算符
= ,可以直接将数值赋给变量,也可以将表达式的值赋给变量
位运算符 一般来说位运算符只能操作整数类型的变量,对变量的二进制进行操作。
这里写图片描述
& 按位与
| 按位或
~ 按位‘非’
^ 按位异或
<< 左移
>> 右移
>>> 无符号右移
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里盗的几张图说的比较清楚,有兴趣的朋友可以看看《疯狂java讲义》这本书。
位移运算是对二进制数进行运算,一般对于位数,变量类型需要注意:
byte short char类型的数需要先自动转化为int类型再进行运算
int类型是32位的数,超过32,会对这个数取余在进行运算,所以a>>32=a,a>>33=a>>1
long类型是64,和int类型一样遵循这个规则

比较运算符
>
>=
<
<=
以上都只支持数值类型的比较
\==,数据类型即使不相同,数值类型相同返回true,若是引用类型且为父子关系,则必须都指向同一个对象才返回true
!=

扩展后的运算符 赋值运算符和算术运算符和位运算结合
+= 对于x+=y 就等于 x=x+y
-=
*=
/=
%=
&=
|=
^=
<<=
>>=
>>>=
逻辑运算符
&& 与 短路,两边为true 返回true
& 与 不短路,
|| 或 短路,有一个是true,返回true
| 或 不短路
! 非 只需要一个操作数,若为true返回false,反之
^ 亦或,两个不同返回true,不同返回false
三目运算符
(expression) ? if-true-statement : if-false-statement
运算符优先级
这里写图片描述

原创粉丝点击