Java运算符 算数运算符 赋值运算符 关系运算符 逻辑运算符 位运算符及运算符优先级

运算符


算数运算符

+(加)、-(减)、*(乘)、/(除)、%(取余)

注意事项:
    1.当两个整数进行除法运算时候,结果只取整数部分,小数部分舍弃。
    
    2.当希望结果中保留小数部分,具体方法如下:
        a.将其中一个操作数强转为double类型在做运算
        b.将其中一个操作数乘以1.0提升为double类型再运算(推荐)
        
    3. 0不能作为除数,否则产生 java.lang.ArithmeticException(算数异常): / by zero 
        但是0.0可以做除数但结果是无穷大的,因此以后开发中避免使用0和0.0作为除数
        
    a.当+两边的操作数中只要有一个字符类型,则按照字符连接符来处理,结果依然是字符
    b.将+两边的操作数都不是字符串时,则按照算数运算符来处理。

字符串连接运算符

“+”可以是实现字符串的连接。同时可以实现字符串与其他数据类型的相连。

自增减运算符

++(自增)、--(自减)

+ 表示加法运算   ++ 表示自增,也就是让当前变量自身的数值加1.
- 表示减法运算   -- 表示自减,也就是让当前变量自身的数值减1.
- 
ia + ib     ia++;

++(--)可分为前++ 和后++(--)

++ia 当++在前面的时候先进行加1的操作,然后再进行其他运算;

ia++ 当++再后面的时候先其他运算,然后再进行加1的操作

--ia 当--在前面的时候先进行减1的操作,然后再进行其他运算;

ia-- 当--在后面的时候先进行其他运算操作,然后再进行减1;

单独使用变量进行自增减的操作,建议尽量不要与其他运算符混合使用

赋值运算符

    =、+=、-=、*=、/=、%=
赋值运算符将右边表达式的运算结果赋值给左边变量的运算符

<1>简单赋值
    =  表示赋值运算符,用于将=右边的数据赋值给=左边的变量,覆盖该变量原来的数值。
    
<2>复合赋值
    +=、-=、*=、/=、%=

	a+=1;	等效于	a=a+1;
	其他类似

关系/比较运算符

>、<、==、<=、!=、>=
>
比较运算符是用来判断两个表达式或值大小关系的运算符。

>  表示是否大于运算符  
<   表示是否小于运算符
==  表示是否等于运算符
<=  表示是否小于等于运算符
!=  表示是否不等于运算符
>=  表示是否大于等于运算符

关系运算符参与的表达式最终结果为boolean类型,  true(真) 和false(假)

逻辑运算符

逻辑运算符操作数为boolean表达式

Java提供的逻辑运算符有   &和&&(与)  |和||(或)   !(非)

    &和&&(与)   表示逻辑与运算符,相当于“并且” ,同真为真,一假为假
    |和||(或)  表示逻辑或运算符,相当于“或者”,一真为真,同假为假。
    !(非)     表示逻辑非运算符,相当于取反,真为假 ,假为真
    
&& 和 || 具备短路的特性: 如果通过第一个表达式的值即可得出最后的结果,则补计算第二个表达式。

短路的特性:
    逻辑与:若第一个条件为假则整个表达式一定为假,此时跳过第二个条件的执行。
    逻辑或:若第一个条件为真则整个表达式一定为真,此时跳过第二个条件的执行

逻辑运算

条件/三目运算符

<1>语法格式:
    条件表达式 ? 表达式1 : 表达式2
    
<2>执行流程
    判断条件表达式是否成立
        = 若成立,则执行表达式1
        = 若不成立,则执行表达式2

	a = 3 > 2 ? 5 : 6;
	3>2为真,所以a=5

移位运算符

左移(<<)  、算数右移(>>)   、逻辑右移(>>>)

移位运算针对二进制移动
<<  -  表示左移运算符,用于讲该整数的二进制向左边移动,右边补0 (丢去最高位,0补最低位)

举例:
    5<<5
    
    0000 0101(5的二进制)
    0000 1010(第一次移动)
    0001 0100(第二次移动)
    0010 1000(第三次移动)
    0101 0000(第四次移动)
    1010 0000(第五次移动)    ---- 结果 160 = 128+32
    
>> -- 表示右移运算符,用于将整数的二进制向右移动,左边补符号位.
>>> -表示无符号右移运算符,忽略符号位,用于将整数二进制向右边移动,左边补0

位运算符

&按位与、 |按位或 、^按位异或、 ~按位非,按照二进制逐位进行二进制运算。

&按位与    -  用于将整数的二进制进行与运算 , 同1 为1  ,一0为0

    举例:
        5&8
        0000 0101
        0000 1000
    -------------------
        0000 0000  0
        
 |按位或
        一1为1,同0为0
    运算规则:  0|0 = 0 ;  0|1 = 1; 1|0 = 1 ;  1|1 = 1;
    
    举例
        5|8
        0000 0101
        0000 1000
        ---------------
        0000 1101   --结果13 
        
^按位异或
        相同为0  不同为1
    运算规则: 0^0 = 0;  0^1=1; 1^0 = 1; 1^1 = 0;
    举例:
        5^8
        0000 0101
        0000 1000
        ---------------
        0000 1101   ---13
        
~按位非
    按照二进制取反运算,1为0 ,0为1
    
    举例:
        ^8---
            0000 1000(二进制)
            1111 0111 (1为0 ,0为1)(现在是负的二进制,转换成十进制输出)
            0000 1000 (按位取反)
            0000 1001(加一)
            9           (是进制整数)
            -9          (前面添加符号)    
            
        ^-10----
            0000 1010       (-10的绝对值转换为二进制)
            1111 0101       (按位取反)
            1111 0110       (加一)
            0000 1001       (反码)
            9               (转换为十进制)
            
    举例(八位为例):
        7:0000 0111
        -7:1000 0111
        
    反码:
        正数的反码就是它本身
        负数的反码,就是将原码的非符号部分,每一位取反
        
    举例:
        7:0000 0111
        -7:1111 1000
    补码:
        正数的补码也是它本身
        负数的补码,符号位不变,其余每一位取反之后,最后加一(反码+1)
        
    举例:
            7:0000 01111
            -7:1111 1001

运算符优先级

运算符分类 			结合顺序 			运算符

分隔符 				左结合 				.    []     ( )     ;      ,

一元运算符 			右结合 				!  ++     --     -   ~

算术运算符/移位运算符	左结合 				*     /      %    +     -      <<   >>   >>>

关系运算符 			左结合 				<     >     <=   >=   instanceof(Java 特有)   = =  !=
逻辑运算符 			左结合 				! &&  ||  ~  &  |  ^ 
三目运算符 			右结合 				布尔表达式?表达式1:表达式2
赋值运算符 			右结合 				=  *=     /=  %=   +=   -=    <<= >>= >>>=  &=  *=  |=
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值