卧薪尝胆之JAVA重学(运算符)

JAVA 运算符分类

算数运算符 (+,-,*,/,%)二元运算符(++,--)一元运算符
赋值运算符 =
扩展运算符 +=,-=,*=,/=,
关系运算符 >,<,==,>=,<=,!= ,instenceof
逻辑运算符 &&,||,!
位运算符 &,|,^,~,>>,<<,>>>
条件运算符 ? :
字符串连接符 +

1)算术运算符

+,-,*,/,%属于二元运算符(二元运算符:需要两个操作数完成运行计算的计算符)
例如: a+b  ;

运算规则:
    整数运算

  1. 如果两个数中有一个是long类型的话那么 结果  也是long类型。
  2. 没有long时 结果为int (数据类型是 short  byte char 结果也是int型)。

    浮点型运算

  1.  如果有一个数是double 那么结果  double类型
  2. 所有的都是float 时  结果  时   float 类型

    取模运算

    运用  % 进行 计算   可以是浮点数,但是通常情况下使用的整数。    结果是余数。
    注意:取模运算  结果的符号 与左边的操作数符号相同

    例如:7%5=2    -7%5=-2   

 ++ ,--属于一元运算符。
例如 :   a++  
一元运算符注意事项:
 例如      ++a   ,a++;

 两者之前的区分:

  1.  ++a  是先进行加法运算然后在赋值   
  2.   a++ 是先赋值在进行加法运算
    如下图代码 所示:
卧薪尝胆之JAVA重学(运算符)
        

2)赋值运算符以及扩展运算符 

     目的都是用来对变量进行赋值。
     举个例子 :

       b+=2   →  b=b+2    b+2算出的值赋值给b 假设我 b=0 b+2 赋值给  b 那么现在b=2   其余的同理。

3)关系运算符

      用来进行比较运算 。运算结果是  false 或 true
      注意 := 和  ==是不同的 
       == 是比较运算符  是比较  两个变量存储位置首地址的。

       =    是 赋值运算符  如:b=2;

4)逻辑运算符

      用来操作boolean值

运算符 说明
&(与) 逻辑与 只要有一个操作数是false 结果就是false
|(或)逻辑或 只要有一个是操作数是true 结果就是 ture
&&(与)短路与 只要有一个操作数是false  结果就是false
||(或)短路或 只要有一个操作数是ture    结果就是ture
!(非)逻辑非 取反 如:!ture  结果是  false
^(异或)逻辑异或 操作数相同  结果 是 false  不同 结果是  true
短路问题:
              &&只要有一个 false  后面就不再进行判断  

              ||    只要有一个 true   后面就不再进行判断 

               & 和 | 所有的都不会进行判断 
         
  如下图代码:
图1.  逻辑 &运算

卧薪尝胆之JAVA重学(运算符)

图2短路&&运算

卧薪尝胆之JAVA重学(运算符)             

优先级:  逻辑非 >逻辑与 > 逻辑或                     

5)位运算符     

数字在计算机是按照二进制来表示的,而位运算就是针对数字的二进制值进行操作

运算符 说明
~ 取反
& 按位与
| 按位或
^ 按位异或
<< 左移运算符  移一位相当于 *2
>> 右移运算符   移一位相当于 /2取商
如下代码所示:

卧薪尝胆之JAVA重学(运算符)

注意:当操作数都是 数字型时 ,& ,|,^ 是 位运算符  

          当操作数都是  boolean类型时 &,|,^是逻辑运算符 

5)字符串连接符

对字符串进行连接

如 :  “a”+“b” = “ab”

             3   +  "a"    =  "3b"
只要有一个 是字符串 那么   就是进行字符串连接操作。
             1+3=4
             1+"3"="13"

6)条件运算符(三目条件运算符)

用来做 判断赋值  
如   a>b ?  a=1 : a=2 ;
解释: 如果 a>b =true  那么 a=1   否则 a=2 

关于运算符 优先级  的话  建议用  ()来进行优先级运算。但是 逻辑的 优先级一定要记住