1.Java自动类型转换和强制类型转换:
转换规则:在进行混合运算时,小容量的数值先转换为大容量的数值,在进行计算
char,int,short类型只要参与运算就自动转换为int类型,然后在进行计算
特别注意,float(4字节)容量大于long(8字节)容量
强制转换会出现的问题:可能会造成精度降低或数值溢出
2.常用的运算符有:
算术运算符:+ - * / % (双目运算符)
++ -- +(表示正数) -(表示负数) (单目运算符)
关系运算符:> < >= <= == != 返回布尔值 (双目运算符)
赋值运算符:= += -= *= /= %= (双目运算符)
逻辑运算符:&(逻辑与) |(逻辑或) (双目运算符)
&&(逻辑与) ||(逻辑或) 会短路 (双目运算符)
^(逻辑异或) (双目运算符)
!(逻辑非) (单目运算符)
位运算符:&(按位与) |(按位 或) (双目运算符)
~(按位取反) (单目运算符)
条件运算符:关系表达式 ? 表达式1 : 表达式2 (三目运算符)
3、逻辑运算符中注意事项
& 和 &&,| 和 ||的一些区别
对于 表达式1 & 表达式2 和 表达式1 | 表达式2
所有表达式都会执行
对于 表达式1 && 表达式2
如果表达式1的值为 false,则表达式2不执行
对于表达式1 || 表达式2
如果表达式1的值为 true,则表达式2不执行
所以 && 和 || 又被称为 短路与 和 短路或
public class LogicCompute {
public static void main(String[] args) {
int a = 7;
int b = 5;
int c = 3;
//&(逻辑与);当且仅当都为true时,结果才为true
System.out.println(a > b & b > c); //true & true -->true
System.out.println(a < b & b > c); //false & true -->false
//|(逻辑或);当且仅当都为false时,结果才为false
System.out.println(a < b | b > c); //false | true -->true
System.out.println(a < b | b < c); //false | false -->false
//&&(逻辑与,短路与);当第一个表达式为false时,不执行后面的表达式
System.out.println(a > b && b > c); //true && true -->true
System.out.println(a < b && b > c); //false && true -->false
//||(逻辑或,短路或);当第一个表达式为true时,不执行后面的表达式
System.out.println(a < b || b > c); //false || true -->true
System.out.println(a < b || b < c); //false || false -->false
}
}
4、赋值运算符中注意事项
public class convert {
public static void main(String args[]) {
short s1 = 1;
// s1 = s1 + 1;// short + int = int 所以这个表达式是错误的
s1 += 1;// short = short(s1 + 1) 隐式类型转换,该式中涉及到强制类型转换
System.out.println("s1 = " + s1);
}
}
最终运行结果是s1 = 2