JAVA中的运算符的总结

  java中很多类型的运算符,这些运算符是java中的基础,也是比较重要的,但是这么多运算符记起来也比较麻烦,而且比较繁琐,这篇文章将就java运算符进行详解

  1.赋值运算符

Java中用的最多的就是“=”,这个就是赋值运算符,与数学中的等号表达意思不一样,java中的等号用“==”表示,后边会解释。

例如:int score=90; 表示将90赋值给score;赋值运算符比较简单。

2.算术运算符

算数运算符有:+(加法运算符),-(减法运算符),*(乘法运算符),/(除法运算符),%(取余运算符);这些都是很简单的也是很容易理解的。

3.关系运算符

关系运算符有:>(大于号), <(小于号), >=(大于等于), <=(小于等于), ==(等于) !=(不等于);关系运算符是用来做比较运算的,比较的结果

是一个boolean类型的值,要么为(true),要么是假(false)。例如:boolean isBig=56>64;b比较结果就是假(false);

注意:“=”和“==”的区别。

“=”是把右边的值赋值给左边的变量;“==”是比较运算符,即“==”左边和右边的值是否相等;

4.单目运算符

单目运算符有:++(自增运算符),--(自减运算符),~(非);

++是在自身的基础上+1,--是在自身的基础上-1。

注意:a++和++a都是表示a增加1,没有区别,但是赋值给另外一个变量时就不一样了,例如int c=a++;

表示先把a赋值给c以后,a在增加1;而int d=++a;表示a先增加1在赋值给d;

5,逻辑运算符

逻辑运算符有:&(逻辑与),&&(短路与),|(逻辑或),||(短路或),!(逻辑非),^(逻辑异或);

逻辑与&只有当符号两边的值都为true是才为true;而短路与&&如果左边的值为false则不进行右面的值判断直接返回false,若左边的值为true则再判断右边的值为true才返回真,而逻辑与&是符号两边都要进行判断,这就是逻辑与&和短路与&&的区别。同样逻辑或 | 和短路或 | | 是一样的。

逻辑非(!)取反,逻辑异或^表示若符号两边的真假值相同则为false,若真假值不一样则为true。

注意:逻辑运算符返回的值为boolean类型的。逻辑运算符通常与循环结构连用;

6.位移运算符

位移运算符有&(位与),| (位或),~(位非),^(位异或)>>(位右移),<<(位左移)。

&(位与),| (位或),~(位非),^(位异或)与逻辑运算符的相应操作的真值表完全相同,其差别只是位运算操作的操作数和运算结果都是二进制整数,而逻辑运算相应操作的操作数和运算结果都是逻辑值boolean型。

例如:

//&按位与

int  a = 3 & 4; 

0000 0011
        &   0000 0100
--------------------
      0000 0000  = 0;只有二进制的相同位数都是1是才返回1;

//按位或|

int a = 3 | 4;
  0000 0
011

|   0000 0100

--------------------
0000 0111=6;只要二进制的相同位数有1则返回1;

//按位异或^

a = 9 ^ 2;
0000 1001
^ 0000 0010
-------------
0000 1011
=11 
当二进制对应的二进位相异时返回1,相同返回0;
//按位非~

二进制的每个位取反

int a = ~9;
0000 0000 0000 0000 0000 0000 0000 1001
取反
1111 1111 1111 1111 1111 1111 1111 0110   补码

          1111 1111 1111 1111 1111 1111 1111 0101   反码
----------------------------------------
1000 0000 0000 0000 0000 0000 0000 1010    原码 -10

最高位符号位为1,代表是负数, 负数是用补码在计算机中存储。这一串数据就是一个补码。需要获取到原码,才能知道十进制的数据到底是几补码 减一得到反码反码取反 得到原码。

左移运算符用“<<”表示,是将运算符左边的对象,向左移动运算符右边指定的位数,并且在低位补零。

例如:int r = 5 << 2;
0000 0101
 
0000 0101
 ----------------
   
0001 0100   = 20;
右移运算符用符号“>>>”表示,是将运算符左边的对象向右移动运算符右边指定的位数,并且在高位补0。

7.三目运算符

对于条件表达式a? x : y,先计算条件a,然后进行判断。如果a的值为true,计算x的值,运算结果为x的值;
否则,计算y的值,运算结果为y的值。 一个条件表达式绝不会既计算x,又计算y。条件运算符是右结合的,也就是说,
从右向左分组计算。例如,a ? b : c ? d : e将按a ? b : (c ? d : e)执行。

补充:运算符的优先等级

JAVA中的运算符的总结_第1张图片




你可能感兴趣的:(java,编程)