运算符

Java运算符,是一种特殊的符号。用表示数据的运算,赋值和比较。

  • 算数运算符
  • 赋值运算符
  • 比较运算符
  • 位运算符
  • 逻辑运算符
  • 三目运算符

1. 算数运算符

符号:加(+),减(-),乘(*),除(/),取余(%)
自增:++
自减:--

作用在于:整数和浮点型。
最终的结果:十进制。只要是byte,short,int,long,char,float,double相加结构都是十进制。
所有的运算的结果的最小范围一定是:---int

a. 自增:++

  • 不同行:

     int a =1;
     a++;
     ++a;
     System.out.println(a); //3  a++ 与 ++a 在不同行效果是等价的。
  • 相同行:在运算中,或者逻辑判断中,或者方法的传参中就存在差异了

    int a =5;
    int b = a++ + 6;
    System.out.println(b); // 11
    System.out.println(a); // 6
        
    int a1 =5;
    int b1 = ++a1 + 6;
    System.out.println(b1); // 12
    System.out.println(a1); // 6
    
    分析[int b = a++ + 6;]运算步骤: 先运算再递加。
    step1: a + 6 = 11
    step2: a++ = 6 
    因此结果是 b=11,a=6
    
    分析[int b = ++a + 6;]运算步骤: 先递加再运算。
    step1: ++a1 = 6
    step2: a1+ 6 = 12 
    因此结果是 b1=12,a1=6

b. 自减:--
跟自增++同理

2. 赋值运算符

  • 等号 =,只要赋值了就修改内存控制的二进制
  • 基础数据类型的默认值:
    byte short int long 都是0
    float double == 0.0
    boolean == false
    char==u0000 空格
  • 赋值运算符的扩展:

      +=,-=,*=,/=,%=

3. 比较运算符

    < > == >= <= != 用于条件判断中

a. == 逻辑判断,是内存地址的比较-(二进制),还需考虑前面的数据类型。
b. = 赋值

"==" 数字是值的比较,对象(封装数据类型)是内存地址的比较。
如果是基础数据类型值比较==,值相等那么都是true,如果是封装数据类型都是false---hashCode()

4. 逻辑运算符

  • 短路:或 || 且 && 非 !
  • 不短路:或 | 且 & 非 ^ (从性能上讲,不推荐使用。)

5. 三目运算符

格式:(逻辑判断(boolean))?true:fakse;

6. 位运算符(7个) ---计算

>>  右移运算符
>>> 无符号右移
<<  左移,二进制整体往左边移动两位,空白位用0填充。
&  按位与,如果两个同时为1返回就是1,其他的都是0。
|  按位或,如果有一位是1那么就是1,其他的都是0。
^  按位异或,两个相同的时候0,不同时返回1。
~  按位非,单数字取反
作用:快速计算一个数字想要得到结果,最终都是以二进制的方式进行计算。
思路: 把十进制转成二进制,再进行移位操作。

true & false ---逻辑符合
5 & 9 ---位运算
   

luochenxi
29 声望1 粉丝