Java运算符

概述:

Java中内置的表示特定运算规则的符号

分类:

算术运算符

赋值运算符

关系运算符

逻辑运算符

三目运算符

位运算符--实际开发中用的不多,了解即可

算术运算符

+  -  *  /  %

++  --

+(求和) -(求差)  *(求积)

/(求商)

注意:

1、结果的数据类型

两个元素的数据类型一致,结果的数据类型和元素的保持一致;

两个元素的数据类型不一致,结果的数据类型和其中大的类型保持一致;

其中byte short char类型参与运算时会自动提升为int类型

面试题:

byte b1 = 3;

byte b2 = 4;

byte b = b1+b2;//编译会报错

2、 除法:当int/int类型时,结果为int类型,直接舍弃小数部分;

商取整的效果

3、 除法:当整数/0 ,除数为0,编译不报错 运行报错(运行时异常)

Exception in thread "main" java.lang.ArithmeticException: / by zero

        at OperatorDemo1.main(OperatorDemo1.java:66)

正浮点数/0:Infinity(无穷大)

负浮点数/0:-Infinity(无穷小)

0.0/0:NaN(Not a  Number)非数字

4、% 取余 模余

整除的概念时使用该运算符

5、++  自增运算符

单目运算符,对一个元素作运算

在++中间不能有空格和其他字符

只能作用变量,不能用于字面值或者常量

可以在变量前边也可以在变量的后边:

单独使用的情况下,前后没有区别;

如果参与运算时,

++在前,则会先让变量的值+1,再参与运算

变量在前,则先使用变量原来的值参与运算,再让变量的值+1

6、--  自减运算符

单目运算符,对一个元素作运算

在--中间不能有空格和其他字符

只能作用变量,不能用于字面值或者常量

可以在变量前边也可以在变量的后边:

单独使用的情况下,前后没有区别;

如果参与运算时,

--在前,则会先让变量的值-1,再参与运算

变量在前,则先使用变量原来的值参与运算,再让变量的值-1

7、对于++ --底层实现的理解

num++;等价于num = (type)(num +1);

 

赋值运算符

=:赋值,不能表示相等

赋值运算符的优先级是最低的

扩展的赋值运算符

+=   -=  *=  /=  %=  

注意:

左侧必须为变量,不能为具体的数据值 也不能为常量

x+=y

先使用左侧变量的值和右侧进行求和运算,将结果赋值给左侧变量

 

关系运算符

比较运算符,特点:结果一定为boolean类型 true  false

>  <  >=  <=

==   !=

 

逻辑运算符

特点:针对布尔型来做运算符,运算结果也是boolean类型 true false

&   |   !   ^

&&   ||

&:与  且  AND  

true&true=true

true&false=false

false&true=false

false&false=false

总结:

两个元素都为true,结果为true;一旦出现false 结果就为false;

|: 或 OR

true|true=true

true|false=true

false|true=true

false|false=false

总结:

两个元素都为false,结果为false;一旦出现true,结果就为true;

!:非 取反

单目运算符

!true = false

!false = true

^:异或

true^true=false

true^false=true

false^true=true

false^false=false

总结:

两个元素相同则结果为false;两个元素不同则结果为true;

案例:

男女搭配干活不累(一男一女构成一个小组)

&&:双与  短路与

如果&&左边的值为false,则右边不再执行,结果必然false

除此之外&  &&效果一致

||:双或 短路或

如果||左边的值为true,则右边不再执行,结果必然为true

除此之外|  ||效果一致

&& ||优点:

可以提高程序的执行效率

 

三目运算符(三元表达式)

单目:对于一个元素

双目:   对于两个元素

格式:

表达式 ? 表达式1 : 表达式2

注意:

符号英文半角符

表达式:要求结果必须为boolean true false

执行流程:

1、执行问号前边的表达式

true,则执行表达式1

false,则执行表达式2

案例:

1、输出变量num的奇偶性

2、判断两个变量值的大小,输出最大值

3、判断三个变量值的大小,输出最大值

 

位运算符

开发使用的不多

源码中大量使用位运算

了解即可

特点:是对二进制的整数作运算

&   |   ~   ^

位移运算符

<<   >>   >>>

&:按位与

1&2

将两个运算的整数转为二进制,按位执行与运算

当两个都为1时,结果为1;如果有0,则结果为0;

技巧:1-true  0-false

 

 

|:按位或

将两个运算的整数转为二进制,按位执行或运算

当两个都为0时,结果才为0,只要有1,结果就为1

技巧:1-true  0-false

 

~:非 按位取反

单目运算符

对1取反为0,对0取反为1

 

 

 

^:按位异或

1-true 0-false

如果两个相等则为0;如果两个不相等则为1;

 

 <<:左移运算符

格式:

a<<b

要将a整数左移b位

先将整数转为二进制,然后将二进制数整体向左移动相应的位数,左侧多出来的位数直接舍弃,右侧空出来的位数补0;

 

在一定范围内,a<<b=>a*2^b

>>:右移运算符

格式:

a>>b

要将a整数向右移动b位

先将整数转为二进制,然后将二进制数整体向右移动相应的位数,右侧多出来的位数直接舍弃,左侧空出来的位数,如果当前为负数则补1,如果当前时正数,则补0;

 

 

 

在一定范围内,a>>b=>a/(2^b)

 

>>>:无符号右移

格式:

a>>>b

要将a整数向右无符号移动b位

先将整数转为二进制,然后将二进制数整体向右移动相应的位数,右侧多出来的位数直接舍弃,左侧空出来的位数补0;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值