Java 03 运算符

104 阅读1分钟

1 . 运算符与表达式

0798.png

0799.png

1 . 2 算术运算符

0800.png

  • 整数参与运算,结果是整数
  • 小数参与运算,结果不一定准确!!!

2 . 隐式转换

只有类型一样的数据才能进行运算

2 . 1 隐式类型转换的提升规则:

0801.png

0804.png

例:

0802.png

0803.png

3 . 强制转换

0805.png

double a = 12.3;
int b = (int)a;
// 则此时 b 的值为12
byte b1 = 10;
byte b2 = 20;
byte result = b1 + b2; // 这样是错的,因为byte会先转换为int进行计算
// 应该改为
byte result = (byte)(b1 + b2);

4 . 字符串的 加 操作

  • 当 "+" 操作中出现字符串时,这个 "+" 是字符串连接符,而不是算术运算符

0806.png

"abc" + true // "abctrue"
  • 当进行连续的 "+" 操作时,从左到右逐个进行

0807.png

5 . 字符的 加 操作

0808.png

6 . 自增自减运算符

0809.png

int x = 10;
int y = x++;
int z = ++x;
// x : 12
// y : 10
// Z : 12

7 . 赋值运算符

0810.png

细节注意:

  • +=、 -= 、 * = 、 /= 运算符的底层都隐藏了一个强制类型转换。
short a = 1;
a += 1;
// 等同于
a = (short)(a + 1);

8 . 关系(比较)运算符

0811.png

9 . 逻辑运算符

0812.png

10 . 短路逻辑运算符

0813.png

  • 短路效果 :简单理解为当左边的表达式可以确定最终的结果,那么右边的就不会参与执行了。
let a = 10;
let b = 10;
boolen result = ++a < 5 && ++b < 5 // false
System.out.printIn(a) // 11
System.out.printIn(b) // 10
let a = 10;
let b = 10;
boolen result = ++a < 5 & ++b < 5 // false
System.out.printIn(a) // 11
System.out.printIn(b) // 11

11 . 三元运算符

0814.png

12 . 运算符优先级

0815.png