JavaSE之第三章运算符和表达式

第三章 运算符和表达式

3.1 算术运算符

针对数学上的算术运算

1)+ :加法运算:针对数字的(整型或浮点型) ****2正号:用于****拼接字符串

2)-:减法运算:针对数字的(整型或浮点型) *负号*

3)*:乘法运算

4)/:除法运算

如果出书和被除数都是整型的,得到结果也是整型的 比如:10/3 => 3

如果除数和被除数至少有一个是浮点型,则得到结果也是浮点型的

5)%:求余,取余,求模

比如:整数求余:10%3 => 1

小数求余:

System.*out*.println(10.5%3.2);//得到结果为0.8999999999999995,因为默认类型为double类型,都是近似值,而离0.9最近的就是这个数

负数求余:运算时得到结果的正负由****前面****的正负决定

System.*out*.println(-10 / 3); // -3

System.*out*.println(-10 % 3); // -1

System.*out*.println(10 % -3); // 1

System.*out*.println(-10 % -3); // -1

运算方法:前面的数-(后面的数*商)

  1. ++和–(自增和自减):既可针对整型运算时使用,也针对浮点型使用

*基本单位是整数1*

无论是自增还是自减都有前置和后置

前置:++a,–b *先进行自增(自减)运算,再把**运算后**的值作为**表达式的值*

后置:a++,b-- *先把变量的值取出作为表达式的值**,再进行自增(自减)运算*

3.2 比较/条件运算符

主要针对数值型,进行数学上的比较运算

运算结果是布尔型

>

>=

<

<=

==

!=

==和!= 除了可以对数值型进行运算,也可以对****引用类型****进行运算

当对引用类型进行比较运算时,两个引用是否指向****同一个对象****

3.3 逻辑运算符

逻辑运算,操作数必须都是布尔型的 运算结果是布尔型

逻辑“与”:A&B A&&B

仅当两个操作数都是true,结果为true,否则为false

逻辑“或”:A|B A||B

仅当两个操作数都为false,结果为false,否则为true

逻辑“非”:!A 取反:如果A为true,结果为false;如果A为false,结果为true

*短路运算*

&&和||在运算时,如果第一个操作数已经能够确定整个表达式的值,第二个操作数将不再执行

短路运算经常与++或–一起运算

在这里插入图片描述
在这里插入图片描述

3.4 位运算符

针对二进制

&:按位与:如果两个数的对应位都是1,结果的对应位也是1,否则就是0

1010 => 10

1110 => 14

1010 => 10

|:按位或:如果两个数的对应位都是0,结果的对应位也是0,否则就是1

1010 => 10

1110 => 14

1110 => 14

^:按位异或:如果两个数的对应位相同时,结果的对应位是0,否则是1

1010 => 10

1110 => 14

0100 => 4

~:取反:单操作数 如果原来的数字为1,结果为0;如果原来数字为0,结果为1

>>:右移位:第一位为符号位,不变,高位向低位移动,高位按符号位补,低位移走就舍掉

正数

0101 1010

>>2

0001 0110

负数

1101 1010

>>2

1111 0110

>>>:无符号右移位

不存在符号位

高位向低位移动,高位补零,低位移走就舍掉

1101 1010

>>>2

0011 0110

<<:左移位:低位向高位移动,低位补零,高位移走就舍掉

0101 1010

<<2

0110 1000

都已2n为准 >>n或<<n

除以8,8 = 23

>>3

乘8,8 = 23

<<3

3.5 赋值运算符

= 给变量赋值 运算顺序从右向左

左边必须是一个变量,右边必须是一个符合类型的表达式

a = 10;

a = b + 10;

a = b = 10;(不推荐)

复合赋值运算符

当二元/二目运算符和等号结合起来,就会组成复合赋值运算符

a += b => a = a + b;
在这里插入图片描述

编译器自动处理

3.6三目运算符

*A* *?* *B* *😗 *C*

A必须是一个布尔型

如果A=true,这时整个表达式的值是B的值,C不会执行

如果A=false,这时整个表达式的值是C的值,B不会执行

3.7 表达式中运算符的优先级

*优先级最高的是()*

如果表达式中包含了多种运算符,使用****()****明确运算的顺序

运算符优先级顺序为

(),

++,–,

!,~,instance of,

*,/,%,+,-,

<<,>>,>>>,

<,>,<=,>=,==,!=,

&,^,

&&,||,

?:

*运算符**结合性*
[ ] . ( ) (方法调用)从左向右
! ~ ++ – +(一元运算,正号) -(一元运算,负号)从右向左
* / %从左向右
+(加) -(减)从左向右
<< >> >>>从左向右
< <= > >= instanceof从左向右
== !=从左向右
&从左向右
^从左向右
|从左向右
&&从左向右
||从左向右
?:从右向左
=从右向左
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值