Java运算符

一、算数运算符

操作符 描述 例子:int a=10;int b=3; 结果
+ a+b 13
- a-b 7
* a*b 30
/ a/b 3
% a%b 1
++ 自增 a++;++a(注) 11;11
-- 自减 a--;--a(注) 9;9

注:前缀自增、自减法(++a、--a):先自增、自减,在进行表达式运算;

后缀自增、自减法(a++、a--):先进行表达式运算,在自增、自减。

public class selfAdd{
    public static void main(String[] args){
        int a=10;//定义变量
        int b=20;//定义变量
        int c=++a;//先自增在赋值
        int d=b++;//先赋值在自增

        System.out.println(a);

        System.out.println(b);

        System.out.println(c);

        System.out.println(d);
    }
}

运行结果

11
21
11
20

 

二、关系运算符

运算符 描述 例子:int a=10,b=20; 结果
== 等于 a==b false
!= 不等于 a!=b true
> 大于 a>b false
< 小于 a<b true
>= 大于等于 a>=b false
<= 小于等于 a<=b true

 

三、位运算符

应用于int、long、short、char、byte

操作符 描述

例子:int a=60;//60=0011 1100

int b=13;//13=0000 1101

结果
& 对应位置是1为1,否则为0 (a&b) 12;//0000 1100
| 对应位置是0为0,否则为1 (a|b) 61;//0011 1101
^ 对应位置相同为0,否则为1 (a^b) 49;//0011 0001
~ 取反操作,1变为0,0变为1 (~a) -61;//1100 0011
<< 左移 a<<2 240;//1111 0000
>> 右移 a>>2 15;//1111
>>> 补零 a>>>2 15;//0000 1111

 

四、逻辑运算符

操作符 描述 例子:boolean a=true,b=false; 结果
&& 逻辑与 (a&&b) false
|| 逻辑或 (a||b) true
! 逻辑非 !(a&&b) true

短路:

public class DuanLu{
    public static void main(String[] args){
        int a=5;
        boolean b=(a<3)&&(a++<10);/*先判断a<3为false,则b的结果必定为false,故不再执行短路逻辑运算符后面的操作(a++<10)*/
        System.out.println("b="+b);
        System.out.println("a="+a);
    }
}

运行结果

b=false
a=5

 

五、赋值运算符

操作符 描述 例子:int a=1;int b=2;int c=10; 结果
= 赋值 c=a+b; 3
+= 加和赋值 c+=a;//c=c+a 11
-= 减和赋值 c-=a;//c=c-a 9
*= 乘和赋值 c*=b;//c=c*b 20
/= 除和赋值 c/=b;//c=c/b 5
%= 取模和赋值 c%=b;//c=%b 0
<<= 左移位赋值 c<<=2;//c=c<<2  
>>= 右移位赋值 c>>=2;//c=c>>2  
&= 按位与赋值 c&=2;//c=c&2  
|= 按位或赋值 c|=2;//c=c|2  
^= 按位异或赋值 c^=2;//c=^2  

 

六、其他运算符

①条件运算符(三元运算符)

主要决定哪个值赋给变量

variable x = (expression)? value if true :value if false

public class Test{
    public static void main(String[] args){
        int a,b;
        a=10;
        
        //如果a等于1成立,则设置b为20,否则为30
        b=(a==1)? 20:30;
        System.out.println("b的值为:"+b);
        
        //如果a等于10成立,则设置b为20,否则为30
        b=(a==10)? 20:30;
        System.out.println("b的值为:"+b);
    }
}

运行结果

b的值为:30
b的值为:20

 

②instanceof运算符

用于操作对象实例,检查该对象是否是一个特定类型(类类型或者接口类型)

(Object reference variable) instanceof (class/interface type)

若左侧所指的对象为右侧类/接口的一个对象,则结果为真

class Vehicle{}


public class Car extends Vehicle{
    public static void main(String[] args){
        Vehicle a = new Car();
        boolean result = a instanceof Car;
        System.out.println(result);
    }
}

运行结果

true

 

 

————————————————————————————————————————

Java运算符优先级:以下最高优先级的在表的最上方,最低优先级的在表中的最下方

类别 操作符 关联性
后缀 ()小括号 []中括号 .点操作符
一元 +取正 -取负 !逻辑非 ~取反
乘除余 *乘法 /除法 %取余
加减 +加法 -减法
移位 >>右移 >>>补零 <<左移
关系 >大于 >=大于等于 <小于 <=小于等于
相等 ==等于 !=不等于
按位与 &
按位异或 ^
按位或 |
逻辑与 &&
逻辑或 ||
条件 ?:三木运算符
赋值 =赋值 +=加和赋值 -=减和赋值 *=乘和赋值 /=除和赋值 %=取模和赋值 >>=右移位赋值 <<=左移位赋值 &=按位与赋值 ^=按位异或赋值 |=按位或赋值
逗号 ,

 

posted @ 2019-08-20 22:32  一只嘟嘴的鱼  阅读(151)  评论(0编辑  收藏  举报