尚硅谷JavaSE基础

2.6 运算符

2.6.1 常见运算符

算术运算符

关系运算符

逻辑运算符

赋值运算符

三目运算符

2.6.2运算符详细介绍

1、算术运算符

基本算术运算符

+ - * / %

注意:/左右两边都是整型,结果取整

自增、自减运算符

++ --

特点:

①属于一元运算符

i++、--i

②可以作为独立的语句或作为表达式使用

作为独立的语句使用:

i++;等价于++i;效果上等价于 i=i+1;

作为表达式使用:

int j = i++;   先赋值后自增// int temp = i++;  i++;  j = temp;

int j = ++i;   先自增后赋值 ///

③自增、自减运算符,底层做了优化,所以效率较高,其次 不用手动的类型转换

int i = 10;

i*=1.523;//√

System.out.println(i);//15

2、关系运算符

> < >= <=  ==  !=

3、逻辑运算符

名称 语法 特点

&& / & 与 条件1&& 条件2 两个条件都成立,结果为true

|| / | 或 条件1|| 条件2 只要有一个条件成立,结果为true

! 非 !条件 如果条件成立,结果为false,否则为true

&&和&的区别:

&& 如果第一个条件不成立,则不再执行第二个条件,效率较高

&  不管第一个条件是否成立,都要执行第二个条件,效率较低

||和|的区别:

|| 如果第一个条件成立,则不再执行第二个条件,效率较高

|  不管第一个条件是否成立,都要执行第二个条件,效率较低

4、赋值运算符

1、基本赋值运算符

=

2、复合赋值运算符

+= -= *=

特点:

1、运算顺序从右往左

2、赋值运算符的左边只能是变量,右边可以是变量、常量、表达式、方法调用

3、复合赋值运算符具备以下特点

①i+=3;效果上等价于 i=i+3;但效率比i=i+3;较高

②编译器内部做了优化,不用我们手动的类型转换了

③复合赋值的变量必须提前进行初始化

5、三目运算符

说明

条件?操作数1 :操作数2

特点:

1、如果条件成立,结果为操作数1,否则为操作数2!

2、两个操作数的类型要求一致或兼容

6、运算符优先级

 

.    ()    {}    ;    ,

R—>L

++    --    ~    !(data type)

L—>R

*    /    %

L—>R

+    -

L—>R

<<    >>    >>>

L—>R

<    >    <=    >=    instanceof

L—>R

==    !=

L—>R

&

L—>R

^

L—>R

|

L—>R

&&

L—>R

||

L—>R

?    :

R—>L

=    *=     /=    %=

 

+=    -=    <<=    >>=

 

>>>=    &=    ^=    |=