/符号表示的是整除的意思,并且取的结果是商的整数部分
如果我们就想让结果有小数表示,怎么办呢 只需要将其中一个变量变成浮点类型参与运算就可以了
但是如下图: 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 | 位赋值运算 | &=、|=、<<=、>>=、>>>= |
如上图所示先把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型)
>=的优先级比=高(由运算符优先级图标可以查看)