Java基础第三篇 自动类型转换
Java基础第三篇 自动类型转换
在java开发过程中经常会遇到不同的基本数据类型自动转换,所以我们所讲的自动类型转换前提是基本数据类型是基本数据类型,例如:
int myt1=99;
double myt2=myt1;
System.out.println(myt2);
注意点:1、目标类型能与源类型兼容,如double型兼容int型,但是char型不能兼容int型,byte型不能兼容char型,下图就是类型的转换,从小的数值类型自动转换到大的数值类型
注:flot应为float.
2、图中依次表示了各数值类型的字节数和相应的取值范围。在Java中,整数类型(byte/short/int/long)中,对于未声明数据类型的整形,其默认类型为int型。在浮点类型(float/double)中,对于未声明数据类型的浮点型,默认为double型。
3、目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了,有一点例外的是long类型能自动转换为float类型,float类型能表示的数远远大于long型,具体原因可以参考https://blog.csdn.net/writing_happy/article/details/78880606。
4、byte型不能自动类型提升到char,char和short直接也不会发生自动类型提升(因为负数的问题),同时,byte当然可以直接提升到short型。
5、凡是byte、short 、 char数据类型数据在运算的时候都会自动转换成int类型的数据再运算。
参考代码:
package HolleWorld;
public class HelloWorld {
public static void main(String arge[]){
byte byte1=78;
short short1=byte1;
System.out.println(short1);
short short2=77;
int int1=short2;
System.out.println(int1);
int int2=76;
long long1=int2;
System.out.println(long1);
long long2=75;
float float2=long2;
System.out.println(float2);
float float3=74;
double double1=float3;
System.out.println(double1);
int int3=73;
double double2=int3;
System.out.println(double2);
int int4=72;
float float4=int4;
System.out.println(float4);
}
}
参考来至:https://www.cnblogs.com/lwbqqyumidi/p/3700164.html
https://blog.csdn.net/weixin_39582667/article/details/77353235
https://blog.csdn.net/writing_happy/article/details/78880606
以及慕课网
上一篇: LRU缓存淘汰策略实现