- 运算符
1. 算术运算符: +, -, *, /, %, ++, --
2. 赋值运算符 =
3.扩展赋值运算符:+=, -=, *=, /=
4.关系运算符: >, <, >=, <=, ==, !=
5. 逻辑运算符: &&, ||, !
6.位运算符: &, |, ^, ~ , >>, <<, >>> (了解! ! ! )
7.条件运算符 ? :
- 算数运算符
注意:
/ (除): 6/4=1 6/4.0=1.5
%取模(求余): 6%4=2
+ :6+‘a’=103 6+“a“=6a
++ :a=2;b=++a+9; a=2;b=a+++9;
+:字符串相加, 只要有一个操作数是字符串, 自动变为字符串相连
二元运算符类型提升
整数运算:
如果两个操作数有一个为Long, 则结果也为long
没有long时, 结果为int。 即使操作数全为shot,byte, 结果也是int.
浮点运算:
如果两个操作数有一个为double, 则结果为double.
只有两个操作数都是float, 则结果才为float.
赋值运算符
其中后面带有=号的含有强制类型转换。
关系运算符
关系运算符用来进行比较运算,关系运算的结果是布尔值: true/false。
注意:
区分==和=
不等于是! =不是<>
逻辑运算符
注意:
1.逻辑运算符与布尔操作数一起使用, 组成逻辑表达式
2.逻辑表达式的结果是布尔值
3.&和&&的区别
1) “&”:无论任何情况, “&”两边的表达式都会参与计算。
2)“&&”: 当“&&”的左边为false, 则将不会计算其右边的表达式。 即左false则false
4.“|”和“||”的区别与“&”和“&&”的区别类似。
位运算符
注意:
1.位运算符是对操作数以二进制比特位为单位进行操作和运算, 操作数和结果都是整型数。
2.如果操作的对象是char、 byte、 short, 位移动作发生前其值会自动晋升为int, 运算结果
也为int
条件运算符
1.语法格式
x ? y : z
2. 唯一的三目运算符
3. 执行过程
其中 x 为 boolean 类型表达式, 先计算 x 的值, 若为true, 则整个三目运算的结果为表达式 y 的值, 否则整个运算结果为表达式 z 的值。
注意:
经常用来代替简单的if-else判断!
运算符的优先级
基本数据类型之间的转换
1.在赋值运算或算术运算时, 要求数据类型相同, 否则要进行类型转换。
2. 转换方式:
1)boolean类型不参与转换
2) 自动转换
A:从小到大
B:byte,short,char – int – long – float – double
C:byte,short,char之间不相互转换,直接转成 int 类型参与运算。
3)强制转换
A:从大到小
B:可能会有精度的损失,一般不建议这样使用。
C:格式:目标数据类型 变量名 = (目标数据类型 ) (被转换的数据 );
特例:可以将整型常量直接赋值给byte, short, char等类型变量, 而不需要进行强制类型转换, 只要不超出其表数范围。
注意:
1)除boolean类型外, 所有的基本数据类型因为各自的精度不同, 赋值时都要考虑这个问题
2)除boolean类型外, 所有的基本数据类型包括: 整型, 浮点型, 字符型。