java基础复习 - 2 - 运算符

运算符

算术运算符

  1. + 正号
  2. - 负号
  3. +
  4. -
  5. *
  6. /
  7. % 取模
     // 在%的本质看一个公式 a%b = a - a/b*b
     // -10%3 => -10 - (-10)/3*3 = -10 - (-9) = -1
     System.out.println(10%3); // 1
     System.out.println(-10%3); // -1
     System.out.println(10%-3); // 1
     System.out.println(-10%-3); // -1
    
  8. ++ 自增
     // 经典面试题
     int i = 1;
     i = i++; // 流程:(1) temp = i; (2)i = i+1; (3)i = temp
     System.out.println(i); // 1
    
     int i = 1;
     i = ++i; // (2) temp = i; (1)i = i+1; (3)i = temp
     System.out.println(i) // 2
    
  9. -- 自减
  10. + 字符串相加

赋值运算符

  1. 基本复制运算符 =
  2. 复合复制运算符,符合运算符会进行类型转换
    1. += a+=b a=a+b
    2. -=
    3. *=
    4. /=
    5. %=
     byte b = 3;
     b+=2;// 等价于 b = (byte)b + 2;
     b++; // b = (byte)(b + 1);
    

关系运算符

  1. == 相等于
  2. != 不等于
  3. < 小于
  4. > 大于
  5. <= 小于等于
  6. >= 大于等于
  7. instanceof

优先级:

逻辑运算符

  1. && 短路与
  2. || 短路或
  3. ! 取反
  4. & 逻辑与
  5. | 逻辑或
  6. ^ 逻辑异或

位运算符

java中有7个位运算符(按位与& 按位或| 异或^ 按位取反~ >> << >>>)

  1. 按位与 : 两位全为1,结果为1, 否则为0
  2. 按位或 : 两位有一个为1,结果为1,否则为0
  3. 按位异或 : 两位一个为0,一个为1,结果为1,否则为0
  4. 按位取反 : 0->1,1->0
       ~-2
       -2原码 10000000 00000000 00000000 00000010
       -2反码 11111111 11111111 11111111 11111101
       -2补码 11111111 11111111 11111111 11111110
       ~=2 =  00000000 00000000 00000000 00000001 = 1
    
  5. 算术右移>> : 低位溢出,符号位不变,并用符号位补溢出的高位
  6. 算术左移<< : 符号位不变,低位补0
  7. >>> 逻辑右移也叫无符号右移,运算规则是 : 低位溢出,高位补0
    int a = 1 >> 2; //
    int b = -1 >> 2; //
    int c = 1 << 2; // 
    int d = -1 << 2; //
    int e = 3 >>> 2; //
    

三元运算符

三元运算符,表达式1和表达式要为可以赋给接受变量的类型或可以自动转换

int a = 10;
int b = 99;
// 1. a>b 为false
// 2. 返回b--,先返回b的值然后再b-1
// 3. 返回的结果是99
int result = a > b ? a++ : b--;
posted @ 2022-03-24 02:26  杨大德  阅读(43)  评论(0)    收藏  举报