boolean 不参与类型转换
自动类型转换
-
把一个表示数据范围小的数值或者变量赋值给另一个表示数据范围大的变量
-
格式 :目标数据类型 变量名 = 值或者变量
-
总结 :
数值之间类型转换 :byte,short,int,long,float,double 字符转换为数值型 :char,int,long,float,double < byte,short 存储范围不满足转换后的数值,无法自动转换 >
-
代码测试
public static void main(String[]args){
/**
* 自动类型转换测试
**/
// 字节型转换为短整型
byte a = 10;
short b = a ;
System.out.println(b);
System.out.println("=============");
// 短整型转换为整型
int c = b;
System.out.println(c);
System.out.println("=============");
// 整型转换为长整型
long d = c;
System.out.println(d);
System.out.println("=============");
// 长整型转换为单精度
float e = d;
System.out.println(e);
System.out.println("=============");
// 单精度转换为双精度
double f = e;
System.out.println(f);
System.out.println("=============");
// 字符类型转换为整型
char g = '我';
int h = g;
System.out.println(h);
}
强制类型转换
-
把一个表示数据范围大的数值或者变量赋值给另一个表示数据范围小的变量
-
格式 :目标数据类型 变量名 = ( 目标数据类型 ) 值或者变量
-
总结 :
强制类型转换,会在转换过程中造成传递值的部分丢失 。 自动类型不能转换,强制类型都可以转换 。
-
代码测试
public static void main(String[]args){
/**
* 强制类型转换测试
**/
// 双精度转换为单精度
double a = 13.1415;
float b = (float) a;
System.out.println(b);
System.out.println("================");
// 单精度准换为长整型
long c = (long) b;
System.out.println(c);
System.out.println("================");
// 长整型转换为整型
int d = (int) c;
System.out.println(d);
System.out.println("================");
// 整型转换为短整型
short e = (short) d;
System.out.println(e);
System.out.println("================");
// 短整型转换为字符型
char f = (char) e;
System.out.println(f);
System.out.println("================");
// 字符型转换为字节型
byte g = (byte) f;
System.out.println(g);
System.out.println("=================");
// 字符转换为短整型
char h = '我';
short i = (short) h;
System.out.println(i);
System.out.println("=================");
// 字符转换为字节型
byte j = (byte) h;
System.out.println(j);
}