栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA基础——运算符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA基础——运算符

JAVA运算符包括 算术运算符,赋值运算符,关系运算符,逻辑运算符,位运算符,三目运算符

一:算术运算符:
    +,-,*,/,%,++,--
+ 加法运算

- 减法运算
* 乘法运算
 / 整除运算,只获取整数部分
 %  取余运算
++:自加1
    当++在前的时候,先自加1,再做赋值操作,当++在后的时候,先做赋值操作,再做自加1

--:自减1
    当--在前的时候,先自减1,再做赋值操作,当--在后的时候,先做赋值操作,再做自减1
二:赋值运算符:  = , +=, -=, *=, /=, %=
其中我们一直在使用的也是最常用的:=
+=     int a += 10;
        int a = 10;
        a += 20;
这里实际上可以看作为a的值加上了一个20再赋值给a,但是不能完全等于 a = a + 20;
为什么不能完全等于,例题。
short s=1, s = s+1;
short s=1, s += 1;
上面两个代码有没有问题,如果有,那里有问题
第一个有问题,因为变量参与运算,首先会提升数据类型,然后做运算。所以 s = s+1;s会提升到int类型然后再做加法运算,最终的结果是int类型,所以拿short类型接收会报错,所以要想成功赋值,就得强制类型转换。
第二个代码没有问题,是因为内部自动包含了强制类型转换,s+=1 ===>  s = (s的数据类型)(s+1)其余的赋值运算符同理,都是通过与自身进行加减乘除运算,再将值赋给自身。
 三:关系运算符:
     ==,!=,>,<,>=,<=

注意事项:
     1、关系运算符的表达式的结果是一个boolean类型,要么是true,要么是false
     2、==不能少写,一个=是赋值运算符,==才是关系运算符
     3、赋值的时候要注意类型问题,关系运算符表达式的结果是boolean类型,所以接收的时候只能是boolean类型的变量接收

四:

逻辑运算符:
    &,|,^,!,&&,||
逻辑运算符的两边放的是boolean类型的值,计算的结果也是一个boolean类型的值

&: 参与运算的时候,两边有false,则false,两边都做运算,即只有当两边都为ture时,才为ture。

|: 参与运算的时候,两边有true,则true,两边都做运算,即只有当两边都为ture时,才为ture。

^: 参与运算的时候,相同为false,不同为true,两边都做运算,即两边同为ture,或同为false,则为false,若一边为ture,一边为false,则为ture。

!: 将true变成false,false变成true.

&&: 短路与,结果和单个 & 结果一样,有false则false,但是执行的东西不一样,
    当&&左边的表达式结果为false的时候,结果是false,右边不执行

||: 短路或,结果和单个 | 结果一样,有true则true,但是执行的东西不一样,
    当||左边是true的时候,右边不执行,结果是true.

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

位运算符:
<<: 左移,二进制左移,右边用0补齐,多出来的丢弃
>>: 右移,最左边最高位是0用0补齐,最高位是1就用1补齐,多出来的丢弃。
>>>: 无符号右移,无论左边最高是0还是1,都用0补齐,多出来的丢弃。

注意,移动的是其二进制补码,不是其二进制源码;

&,|,^,~

例用3和4作比较

3的源码为00000011

4的源码为00000100

因为3,4为正数,所以其源码反码补码相同。

&,|,^,~:运算比较用补码作比较。

& 运算:有0则0
    00000011
 &
    00000100
---------------
    00000000

结果是 : 0



| 运算:有1则1
    00000011
 |
    00000100
--------------
    00000111

结果是:7



^ 运算:相同则0,不同则1
    00000011
 ^
    00000100
--------------
    00000111

结果是:7



~ 运算:1变成0,0变成1
    00000011
~
-------------
补码:     11111100
已知补码求原码:
反码:     11111011
原码:     10000100

结果是:-4
六:三目运算符:又称之为三元运算符
        格式:(关系表达式)?表达式1:表达式2;
    如果关系表达式的结果为true,运算后的结果是表达式1;
    如果关系表达式的结果为false,运算后的结果是表达式2;

注意事项:
    1、三目运算符表达式的结果数据类型由三目运算符表达式1和表达式2中最大的数据类型决定的。
    2、关系表达式一定只能是boolean类型

 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/697185.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号