Java学习笔记13——算术运算符、赋值运算符、比较运算符
运算:
对常量和变量进行操作的过程称之为运算
运算符:
对常量和变量进行操作的符号称之为运算符
操作数(类似于 2 变量b 'a'):
参与运算的数据称之为操作数
表达式(类似于1+1 'b'+2):
用运算符,把常量或者变量连接起来的并且符合java语法的式子,我们称之为表达式
不同运算符连接起来的式子体现的是不同类型的表达式
运算符分类:
算数运算符:
+,-,*,/,%,++,-- (/符号表示的是整除的意思,并且取的结果是商的整数部分)
/符号表示的是整除的意思,并且取的结果是商的整数部分
如果我们就想让结果有小数表示,怎么办呢
只需要将其中一个变量变成浮点类型参与运算就可以了
但是如下图:
System.out.println(3/4*1.0);
这样是不行,结果是0.0 因为按照运算顺序,先除后乘了
应该如下图所示:
System.out.println(3/(4*1.0));
运算符优先级图表:
运算符的优先级(从高到低)
|
优先级
|
描述
|
运算符
|
|
1
|
括号
|
()、[]
|
|
2
|
正负号
|
+、-
|
|
3
|
自增自减,非
|
++、--、!
|
|
4
|
乘除,取余
|
*、/、%
|
|
5
|
加减
|
+、-
|
|
6
|
移位运算
|
<<、>>、>>>
|
|
7
|
大小关系
|
>、>=、<、<=
|
|
8
|
相等关系
|
==、!=
|
|
9
|
按位与
|
&
|
|
10
|
按位异或
|
^
|
|
11
|
按位或
|
|
|
|
12
|
逻辑与
|
&&
|
|
13
|
逻辑或
|
||
|
|
14
|
条件运算
|
?:
|
|
15
|
赋值运算
|
=、+=、-=、*=、/=、%=
|
|
16
|
位赋值运算
|
&=、|=、<<=、>>=、>>>=
|
如果在程序中,要改变运算顺序,可以使用()。
%符号表示取余,如下图所示结果为3
System.out.println(3%4);
%算术运算符参与运算时,进行的是除法,但是结果取的是余数(注意不是小数部分)
++,--
++表示的是自增1,单独使用的时候,结构没有任何影响,放前放后结果一样
--表示的是自减1,单独使用的时候,结果没有任何影响,放前放后结果一样
注意:结合表达式使用的时候,不论是++还是--,放在前面先赋值后做自增或者自减
如上图所示先把a赋值给c,b赋值给d,然后a自增1,b自增1
自减同样的规律
注意:如果放在前面,是先自加或者自减,然后再赋值

赋值运算符:
=,+=,-=,*=,/=,%=
最基本的赋值运算符是=
看程序写结果
+=
-=
*=,/=,%=
面试题:
面试题 short s=1, s = s+1; short s=1, s+=1; 上面两个代码有没有问题,如果有,那里有问题
s+=1,底层进行了转换,但是不是我们想当然的转化为s=s+1,而是转化成了s=(s的数据类型)(s+1)
默认包含了强制类型转换
比较运算符、
关系运算符:
==与=的区别:
=是一个赋值运算符
a=2;
==是一个关系运算符,进行比较操作
(a==2);
==,!=,<,>,<=,>=
关系运算符的结果要么是true要么是false,所以关系运算符的结果是一个布尔类型(boolean型)
>=的优先级比=高(由运算符优先级图标可以查看)

浙公网安备 33010602011771号