类型转换(type cast)
1.等号左右两边类型一致的情况
2.数值类型之间可以赋值。
数值类型和boolean类型之间、数值类型和引用类型之间无法转换
3.数值类型之间转换的规则
1)long a = 10; int ->long; 天生成立
2) int a=10L; long->int 默认不成立,需要类型转换。
3)具体的情况
char
double > float >long > int > short > byte
类型提升
语句(statement)
表达式(expression)
final 最终的 修饰变量 常量(只能被赋值一次的变量)
自动类型转换即:
代码不需要经过任何处理,在代码编译时,编译器会自动进行处理
。特点:
数据范围
小的转为数据范围大的时会自动进行
。
强制类型转换:当进行操作时,代码需要经过一定的格式处理,不能自动完成。特点:数据范围大的到数据范围小的。
不同类型的数据之间相互运算时,数据类型小的会被提升到数据类型大的。
由于计算机的
CPU
通常是按照
4
个字节为单位从内存中读写数据
.
为了硬件上实现方便
,
诸如
byte
和
short
这种低于
4
个字节的类型
,
会先提升成
int,
再参与计算
.
字符串 <->基本类型 不能用类型转换规则
byte b=Byte.parseByte("1"); int i=Integer.parseInt("1"); short s=Short.parseShort("1"); long l=Long.parseLong("1"); float f=Float.parseFloat("1.0"); double d=Double.parseDouble("1.0"); boolean b=Boolean.parseBoolean("true"); Byte.parseByte("1"); Short.parseShort("1"); Long.parseLong("1"); Integer.parseInt("1"); Double.parseDouble("1.0"); Float.parseFloat("1.0"); Boolean.parseBoolean("true");String str=String.valueOf(1); String str1=String.valueOf(1); String str2=String.valueOf(1); String str3=String.valueOf(1); String str4=String.valueOf(1);