java基本数据类型之间存在自动类型转换与强制类型转换两种转换方法。
类型从低到高:byte->char->short->int->long->float->double,如果类型从低到高自动转换,从高到低时则需要强制转换,语法为:
运行转换后的类型 变量 = (转换后的类型)被转换的变量
例如:
long long = 1000L;
byte bl = (byte)long;
实现代码如下:
public class Type {
public static void main(String[] args) {
byte b = 127;
char c = 'Z';
short s = 342;
int i =123;
long l = 5000000L;
float f =3.14F;
double d = 54.67;
//低类型向高类型会自动化转换
System.out.println("累加byte等于:"+b);
System.out.println("累加char等于:"+(b+c));
System.out.println("累加short等于:"+(b+c+s));
System.out.println("累加int等于:"+(b+c+s+i));
System.out.println("累加long等于:"+(b+c+s+i+l));
System.out.println("累加float等于:"+(b+c+s+i+l+f));
System.out.println("累加double等于:"+(b+c+s+i+l+f+d));
//高类型到低类型的数据转换
System.out.println("把long强制转换为int类型:"+(int)l);
//高类型到低类型转换会丢失数据
System.out.println(""+(short)i);
//实数到整数部分转换将舍弃小数部分
System.out.println(""+(int)d);
//整数到字符类型的转换将获取对应编码的字符
System.out.println(""+(char)s);
}
}
效果如下:
注意:
在强制转换时会发生数据丢失,以及实数转换到整数时会丢弃小数部分。