hi,我是小白云Casy,这是我的java学习笔记。
今天学到了一个知识点:java数据类型的自动转换,从低到高转换的。由此我产生了好奇,除了这样转换,还有那些“潜规则”?
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
下面来写代码看看怎么玩儿的吧!
- 自动类型转换
规则:
必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
public class DataTypeAutoTrans{
public static void main(String[] args){
char c1='a';//定义一个char类型
int i1 = c1;//char自动类型转换为int
System.out.println("char自动类型转换为int后的值等于"+i1);
char c2 = 'A';//定义一个char类型
int i2 = c2+1;//char 类型和 int 类型计算
System.out.println("char类型和int计算后的值等于"+i2);
}
}
运行结果:
完成了char到jint的自动转换。
- 强制类型转换
规则:
- 条件是转换的数据类型必须是兼容的。
- 格式:(type)value type是要强制类型转换后的数据类型 实例:
public class DataTypeMustTrans{
public static void main(String[] args){
int i1 = 123;
byte b = (byte)i1;//强制类型转换为byte
System.out.println("int强制类型转换为byte后的值等于"+b);
}
}
运行结果:
3.悄悄告诉你----
隐含强制类型转换
1. 整数的默认类型是 int。
2. 浮点型不存在这种情况,因为在定义 float 类型时必须在数字后面跟上 F 或者 f。
末尾比喻式总结:
1.自动类型转换:段位(位数)要是自下而上的转换,就好像小白升级一样,升到一下个段位,就不能降级了哦,只能努力向上走!
2.强制类型转换:强行把你掰成我要的样子。
类型的转换的这些“潜规则”都记下来了,以后用的时候,得遵循呀,忘记了也可以回来查一查,加油呀!小白云