JAVA(SE)基础四 运算符

JAVA(SE)基础四 运算符

java中有多种运算符,能够进行运算和条件比较等,下面我们来了解下运算符。

赋值运算符

1>基础赋值运算符“=”,是java中唯一一个自右向左运算的符号。把右边的赋值给左边

2>扩展赋值运算符 +=,-=,*=,/=,%=

即 a+=3 >>> a=a+3

扩展运算符的效率会比一般的效率更高。并且会自动做强制类型转换。

算数运算符

和我们日常生活中常遇到的比较相似。有+ - * / 以及求余 %,以及两种全新的++, - -

+加号除了我们日常中的加法运算和正号外,还有连接字符串的作用。做正号时操作数是1,有较高的优先级

-减号有减法运算和负号的作用,做符号时,操作数是1,有较高的优先级

*乘号是乘法的作用

/除号是除法的作用,但如果是两个整数参与运算的话,值只取整数部分。如5/3 结果是1

%求余。是求余数的。如9%4 是9除以4余1,结果就是1

除了上面的还有两种我们接触比较少的,就是**++,- -**。我们叫它自增和自减。

同时i++与++i又有些不同。

这两个都是自增,但如果作用到他人的时候,就会有自增顺序的问题。

++i(前导自增): 先将变量的值增加 1 , 赋值给自己,再进行其他运算
i++ (后导自增):先取出变量的值使用,然后再将变量的值增加 1, 赋值给自己

int i = 3;
int b = i++;  
int c = ++i;

如上面代码,i++是先参与运算,在自增,所以b的值是3,这时i(3)先赋值给b,之后再自增为4

++i是先自增,再参与运算。因为在int b = i++时,i已经为4,现在再加1,i值为5,再赋值给c,c为5.

**- -**也是同样的。

比较运算符|关系运算符

比较运算符也叫关系运算符,有>,<,=,>=,<=,==,!=

其中==,!=任意类型的操作数都可以。

,>,<,=,>=,<=,的操作数byte,short,int,long,float,double,char类型的.

结果是boolean类型的数值。

逻辑运算符

符号 含义
& 和&& 与且,一个为假即为假 都为真为真
| 和 || 或,一个为真即为真,都为假为假
非,非假即真,非真即假
^ 异或,相同为假,不同为真

其中&&与||有短路现象,即第一个可以判断最终结果,后面的不在运行。

操作数只能为boolean类型,可以结果为boolean类型的表达式
推荐使用短路运算符 && ||,可以提高运算效率。

条件运算符

语法: boolean类型表达式 ? 值1 : 值2;

执行流程:
1.执行条件表达式,得到一个boolean类型的结果
2.结果为true,最终的结果为值1
3.结果为false,最终的结果为值2

位运算符(了解)

位运算符 (了解)
运算的时候,会先把操作数转为二进制,然后进行运算,最终得到的结果转为十进制
& : 二进制的两个操作数,统一位置的两个数如果一个为0就是0,两个都为1才是1
| : 二进制的两个操作数,同一位置的两个数如果一个1就是1,两个都为0才是0
^ : 二进制的两个操作数,同一位置的两个数如果相等为0,不等为1
以上两边操作数 为boolean类型 作为逻辑运算符使用,如果操作数为整数,作为位运算使用

位移运算符
<< 左移 : 第一个操作数转为二进制,向左移动第二个操作数个位置,最终的结果转为十进制
>> 右移 : 第一个操作数转为二进制,向右移动第二个操作数个位置,假设源操作数右边与一条线,移出的忽略,只保留剩下的二进制的数据,最终的结果转为十进制

优先级

单目算数位关系,逻辑三目后赋值

你可能感兴趣的:(运算符,java)