自动类型转换,就是一个类型直接可以赋值给另外一个类型,而不需要强制进行转换。
1)精度小的向精度大的转换(精度丢失)
2)字节短的向字节长的转换
3)char和int可以互换,char是用ASCII码表示
byte->(int=char)->long->float->double
示例代码1
int a =5;
System.out.println("value is "+((a<5)?10.9:9));
输出
value is 9.0
三目中自动根据前一个10.9,Java判定精度为9.0;
示例代码2
int i=10;
char x='x';
System.out.println("x="+(int)x);
System.out.println(false?i:x);
System.out.println(false?10:x);
输出
x=120
120
x
看到输出中120根据int类型进行转换,因为自动类型转换char可以表示常量,所以出现10,只用char表示x
示例代码3
int num = 32;
System.out.println(num >> 32);
输出 32
因为二进制中位移操作8位一循环,>>位移最后还是输出32
java其他运算符:“&&”“||”都是短路运算,“&”“|”做全部判断,
二进制运算中“^”“&”根据二进制进行异或、按位与运算。