3.类型转换分类:
自动隐式转换:将小的数据类型转换成大的数据类型
注:
1.在Java中,boolean类型与所有其他7种类型都不能进行转换。
2.其他 7种数据类型,它们之间都可以进行转换,但是可能会存在精度损失或者其他一些变化。
byte -> short -> int -> long-> float-> double
char -> int -> long-> float-> double
byte与char 不能自动转换
char与short不能自动转换
由于小数(浮点数) 的存储方式,结构和整数不一样,所以,float哪怕是4个字节、long是8个字节,表示范围也大于long类型
4.强制转换
定义:将大数据类型转为小数据类型
语法:小数据类型变量名= (小数据类型)大类型值/大类型变量名
注:
1.高转低会导致精度丢失,有数据的溢出风险。溢出的时候,会以二进制进位。
2. 实际开发中:应该要知道被强制转换的数据,是在一个已知的范围。
3. 当int类型的具体的值,向byte、short、char类型转换的时候,值只要在其表示范围内,都会隐式转换。
5.%d的使用场景
用来判断一个数的奇偶性(例:10%2,余数等于0,这个数就是偶数 否则就是奇数)
7.++ 和 --
i++:先赋值在自增
++i:先自增在赋值
8.赋值运算符
赋值运算符的运算等级最低(最后执行)
=:将等号后面的值赋值给等号前的变量
赋值运算符自带强制转换
9.三目运算符
三目运算符的符号: ?:
格式:x ? y : z;
X:必须是 boolean 的值或表达式
y 和 z 可以任意类型的值或表达式
执行流程如果 X 为 true 执行y,如果 X 为 false 就执行 z
10.位运算
1.位于运算:&
//把十进制的数字转换为二进制,二进制对应位上同时为1,结果就是1(对应位上有0就是90)
3 & 5
0000 0011
0000 0101
0000 0001