运算符集合


*全文参考 1

算术运算符

int a= 10;
int b = 5;
int c =21;
int d = 18;

加 +

a+b = 15

减 -

a-b=5

乘 *

a*b=50

除 /

a/b=2

自增 ++ 自减 –

b=++a 前缀先进行自增或者自减运算,再进行表达式运算
System.out.println(“自增运算符前缀运算后a=”+a+";“b=”+b);
结果:
a=11
b=11
运算过程: a=a+1=11 b=a=11

b=a-- 后缀先进行表达式运算,再进行自增或者自减运算
System.out.println(“自减运算符后缀运算后a=”+a+";“b=”+b);
结果:
a=11
b=10
运算过程: b=a=10 a=a+1=11

取余 %

a%b=0

关系运算符

等于 ==

不等 !=

大于 >

小于 <

大于等于 ≥

小于等于 ≤

public class Test {
 
  public static void main(String[] args) {
     int a = 7;
     int b = 18;
     System.out.println("a == b = " + (a == b) );
     System.out.println("a != b = " + (a != b) );
     System.out.println("a > b = " + (a > b) );
     System.out.println("a < b = " + (a < b) );
     System.out.println("b >= a = " + (b >= a) );
     System.out.println("b <= a = " + (b <= a) );
  }
}

a == b = false
a != b = true
a > b = false
a < b = true
b >= a = true
b <= a = false

位运算符

(存疑:)位运算的应用场景?实际应用中需要转换成2进制按位运算的原因是什么?(已在笔记-1011中解答)
Java定义了位运算符,应用于整数类型(int),长整型(long),短整型(short),字符型(char),和字节型(byte)等类型。
位运算符作用在所有的二进制位上,并且按位运算。

A = 0011 1100 = 60
B = 0000 1101 = 13

  • A&B = 0000 1100 = 12
    如果相对应位都是1,则结果为1,否则为0
  • A | B = 0011 1101 = 61
    如果相对应位都是 0,则结果为 0,否则为 1
  • A ^ B = 0011 0001 = 49
    如果相对应位值相同,则结果为0,否则为1
  • ~A= 1100 0011 = -61
    按位取反运算符翻转操作数的每一位,即0变成1,1变成0。
  • A << 2 = 1111 0000 = 240
    按位左移运算符。左操作数按位左移右操作数指定的位数。
  • A >> 2 = 1111 = 15
    按位右移运算符。左操作数按位右移右操作数指定的位数。
  • A>>>2 = 0000 1111 = 15
    按位右移补零操作符。左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充。

逻辑运算符

且(同真则真) &&

&& 是短路逻辑运算符,即一旦判断到一个假,就不会继续判断下去,直接输出结果为FALSE。

例:
boolean A=FALSE
boolean B=TRUE

boolean A&&B=FALSE
boolean A&&!B=FALSE
boolean !A&&B=TRUE

或(存真则真) | |

例:
boolean A=FALSE
boolean B=TRUE

boolean A&&B=TRUE
boolean A&&!B=FALSE
boolean !A&&B=TRUE

反转逻辑状态 !

例:
boolean B=TRUE
boolean A=FALSE

boolean !B=FALSE
boolean !(A||B)=FALSE

赋值运算符

简单赋值 =

先算数/位运算,再赋值 ±*%^&|

例:c+=a 等价于 c=c+a

public class Test {
    public static void main(String[] args) {
        //15的二进制是1111
        int a = 15;
        //22的二进制是10110
        int b = 22;
        int c = 0;
        c = a + b;
        System.out.println("c = a + b = " + c );
        c += a ;
        System.out.println("c += a  = " + c );
        c -= a ;
        System.out.println("c -= a = " + c );
        c *= a ;
        System.out.println("c *= a = " + c );
        a = 10;
        c = 15;
        c /= a ;
        System.out.println("c /= a = " + c );
        a = 10;
        c = 15;
        c %= a ;
        System.out.println("c %= a  = " + c );
        c <<= 2 ;
        System.out.println("c <<= 2 = " + c );
        c >>= 2 ;
        System.out.println("c >>= 2 = " + c );
        c >>= 2 ;
        System.out.println("c >>= 2 = " + c );
        c &= a ;
        System.out.println("c &= a  = " + c );
        c ^= a ;
        System.out.println("c ^= a   = " + c );
        c |= a ;
        System.out.println("c |= a   = " + c );
    }
}
  • 结果
变量二进制十进制
a1501111
b2210110
C000000
代码结果二进制注释:十进制
c = a + b37100101
c += a52110100
c -= a37100101
c *= a5551000101011
c /= a37100101
c %= a2210110
c <<= 22411000
c >>= 26110
c &= a6110
c ^= a91001
c|= a151111

其他运算符

条件运算符(?:)

// (条件)?条件结果为TRUE执行(存疑):条件结果为FALSE执行(存疑)
“:”左右能写表达式嘛,还是只能写值。即是判断条件后执行XX,还是赋值XX(可以写表达式,比如计算式,但是不能写语句!!!表达式≠语句)
表达式:variable x = (expression) ? value if true : value if false

public class Test {
   public static void main(String[] args){
      int a , b;
      a = 25;
      b = 10;
      // 取较大的值赋给b
      b = (a ≥ b) ? a : b;
      System.out.println( "Value of b is : " +  b );

   }
}

结果: b=25

instanceof 运算符

  • *// (被检查的对象)instanceof (父类/可兼容的接口类型/类型)
    表达式:( Object reference variable ) instanceof (class/interface type)
class People{}

public class Man extends people{
 int age =0;
 public static void main(String[] args){
 Man James = new Man();
 int James.age = 18 ;
 boolean result =  James instanceof Man;
 boolean result2 =( James.age ) instanceof  (int) 
 boolean result3 =( James.age ) instanceof  (age) 
 boolean result4 =( 18 ) instanceof  (int) 
 boolean result4 =( 18 ) instanceof  (age) 
 System.out.println(result);
 System.out.println(result2);
 System.out.println(result3);
  }
}

结果:
true
true(存疑)
true(存疑)
true(存疑)
true(存疑)

运算符优先级

优先级从高到低:

类别操作符关联系
后缀() [] .左到右
一元+ + - !〜右到左
乘除取余* /%左到右
加减自增减(存疑)+ - ++ –左到右
移位>> >>> <<左到右
关系>> = << =左到右
相等不等== !=左到右
按位与&左到右
按位异或^左到右
按位或|左到右
逻辑于/且&&左到右
逻辑或||左到右
条件?:右到左
赋值= += -= *= /= %= >>= <<= ^= |=右到左
逗号,左到右

  1. 菜鸟教程-Java 运算符 ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值