【Java】Java_11运算符

1.运算符(operator)

   Java 语言支持如下运算符:

    算术运算符:  +-*/%++

    赋值运算符 =

    关系运算符:  ><>=<===!=  instanceof

    逻辑运算符:  &&||!

    位运算符:  &|^~ >><<>>> 

    条件运算符

    扩展赋值运算符:+=-=*=/= 

2.一元运算符(++, --)

int a = 3;
int b = a++;   //执行完后,b=3。先给b赋值,再自增。
int c = ++a;   //执行完后,c=5。先自增,再给b赋值

注意:java中的乘幂处理:

int a = 3^2;    //java中不能这么处理, ^是异或符号。
double b = Math.pow(3, 2);

3.二元运算符

整数运算:

如果两个操作数有一个为Long, 则结果也为long

没有long时,结果为int。即使操作数全为shot,byte,结果也是int.

浮点运算:

如果两个操作数有一个为double, 则结果为double.

只有两个操作数都是float, 则结果才为float.

4.布尔逻辑表达符

逻辑与:&&&,逻辑或:|||,逻辑非:!。

逻辑与和逻辑或采用短路的方式。从左到右计算,如果确定值则不会再计算下去。

逻辑与只要有一个为false, 则直接返回false.

逻辑或只要有一个为true, 则直接返回true; 

boolean c = 1>2&&2>(3/0);

5.位运算符

~ -- 取反 &   -- 按位与    

|  -- 按位或 ^  -- 按位异或   

<<:左移运算符, >>:右移运算符 >>>:无符号移位运算符

右移一位相当于除2取商。

左移一位相当于乘2

int a = 3*2*2;
int b = 3<<2;  //相当于:3*2*2;
int a = 12/2/2;
int b = 12>>2;

6.扩展运算符

运算符 

用法举例 

等效的表达式 

+=

    a += b

    a = a+b

-=

    a -= b

    a = a-b

*=

    a *= b

    a = a*b

/=

    a /= b

    a = a/b

%=

    a %= b

    a = a%b 

7.字符串连接符

“+”运算符两侧的操作数中只要有一个是字符串(String)类型,系统会自动将另一个操作数转换为字符串然后再进行连接。

8.三目条件运算符

三目条件运算符,语法格式:

  x ? y : z

 其中 x boolean 类型表达式,先计算 x 的值,若为true,则整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。

运算符优先级的问题:


R to L

.   ( )   { }   ;   ,
++ --   ~ ! (data type)

L to R

* / %

L to R

+ -

L to R

<< >> >>>

L to R

<  >  <=  >=  instanceof

L to R

== !=

L to R

&

L to R

^

L to R

|

L to R

&&

L to R

||

R to L

? :

R to L

 =   *=   /=   %=  
 +=   -=   <<=   >>=   
>>>=   &=   ^=   |=

 代码示意:

public class TestOperator{
    public static void main(String[] agrs){
        //简单运算符
        int a = 1;
        int b = 2;
        int c = a+b;
        System.out.println("c的值为:"+c);
        
        //一元运算符
        int d = 1;
        int e =d++; //执行完后,d=1。先给e赋值,再自增
        int f =++d; //执行完后,f=3。先自增,然后再赋值,这里自增2次,在e那已经自增一次。
        System.out.println("e的值为:"+e);
        System.out.println("f的值为:"+f);
        
        //位运算符
        int m = 2;
        int n = 4;
        
        System.out.println(m&n);
        System.out.println(m|n);
        System.out.println(~n);
        System.out.println(m^n);
        
        //三目运算符
        int a1 = 10;
        int a2 = 20;
        System.out.println((a1>a2)?false:true);
    }
}
原文地址:https://www.cnblogs.com/OliverQin/p/6710904.html