java运算符

来源:互联网 发布:spring mvc 接收数组 编辑:程序博客网 时间:2024/06/05 15:05

算术运算、赋值运算、关系运算、逻辑运算、位运算、三元运算。

算术运算:+ - * / % 数据类型一致,运算的结果和运算数据保持一致。1234 / 1000 *1000 = 1000

10 % 3 = 1

3 % 10 = 3

10 ÷ 3  =  3 …… 1

 

++ -- 自增 自减运算

int a =10;

int b = a ++;

int c = ++a;

自增自减可以在变量的左边,也可以在变量的右边,当自增自减在变量的右边时,会先把a空间中的值临时存储起来,再给a空间中加1,然后把临时存储的那个值,和其他的运算符进行运算。

如果自增自减在变量的左边时,先给这个变量空间中加1(减1),然后把运算完的这个变量和其他的运算符进行结合运算。

 

int i = 3;

i = i++;

 

赋值运算:

= += -= *= /= %=

赋值运算的作用就是把右边的结果赋值到左边的变量空间中。

int a = 3;  把常量值3 赋值给左边的a空间

3 = a; 报错,原因左边是常量值,不是一个变量空间。

 

byte b1 = 3;

byte b2 = 4;

b2 = b2 + b1;  编译报错,因为b1和b2 是个变量,那么编译器在编译的时候,会把其当作int类型来处理,假设可以运算,那么运算的结果有可能超过byte类型的存储范围,那么就会出现问题,因此在编译的时候直接提示错误。

b2 +=b1;  编译通过,b2 =(byte)( b2 +b1);

 

关系运算:

关系运算的结果都是boolean

> >= < <= != == 

== 和=

== 判断左右两边是否相等,

= 是把右边的结果赋值给左边的变量空间

 

在后期学习JavaScript的时候 还会有 === 符号

 

 

逻辑运算:

运算的结果也是boolean值 ,逻辑运算符要求运算符两侧必须是boolean值。

& &&  有一侧为false结果就是false

| ||   有一侧是true结果就是true

 !  非true为false  非false为true

 ^  同时为true或者false时结果就是false,两侧不同时结果就是true

& 不管左边是true还是false,右边都要参与运算,而&& 左边为false右边不参与运算

| 不管左边是否为true,右边都要运算,而|| 左边是true右边不算。

 

位运算:

&   |   ^ ~   <<  >> >>>

 

12 & 9 =8

0000 0000 0000 0000 0000 0000 0000 1100   12

0000 0000 0000 0000 0000 0000 0000 1001   9

&

----------------------------------------------------------------------

0000 0000 0000 0000 0000 0000 0000 1000   8

 

12 | 9 =

0000 0000 0000 0000 0000 0000 0000 1100   12

0000 0000 0000 0000 0000 0000 0000 1001   9

|

----------------------------------------------------------------------

0000 0000 0000 0000 0000 0000 0000 1101   13

 

12 ^ 9 =

0000 0000 0000 0000 0000 0000 0000 1100   12

0000 0000 0000 0000 0000 0000 0000 1001   9

&

----------------------------------------------------------------------

0000 0000 0000 0000 0000 0000 0000 1000   8

0000 0000 0000 0000 0000 0000 0000 1001   9

^

----------------------------------------------------------------------

0000 0000 0000 0000 0000 0000 0000 0101   5

 

~12 = -13

 

0000 0000 0000 0000 0000 0000 0000 1100   12

~

--------------------------------------------------------------------------------

1111 1111 1111 1111 1111 1111 1111 0011      -13

+                                                             1

-----------------------------------------------------------------

1111 1111 1111 1111 1111 1111 1111 0100 -12

                     负数的二进制是对应的整数的二进制取反+1.得到的就是当前这个整数对应的那个负数的二进制数。

                           

三目运算:  表达式1 ?表达式2 :表达式3;

0 0
原创粉丝点击