类型转换
两种类型:
- 自动类型转换
条件:
1、数据类型要兼容
2、目标类型要大于源类型,如int类型转换成long(long占的字节数是大于int的)
- 强制转换
语法:(目标数据类型)数据
可能会导致数据精度不准确
下面代码:
public static void main(String[] args) {
/*
* 自动类型转换,也称为隐式转换
*/
int a = 3;
long b = a;
System.out.println(b);//3
double c = a;//都是数值类型,是可以的
System.out.println(c);//3.0
boolean d = false;
//double e = d;//这是不行的
/*
* 强制类型转换,也称为显示转换
*/
double e = 12.6;
//int f = e;//这是错误,无法自动转换(int的字节数小于double)
int f = (int)e;//强制转换可以的,但是会导致结果发现丢失,不准确
System.out.println(f);//12
String g = "hehe";
//int h = (int)g;//这是无法转换的,完全不是一个类型的
/*
* char和int之间的转换
*/
int x = 'a';//隐匿转换
System.out.println(x);//97 a的ASCLL
//int转换成char
//char y = x;//报错,隐式转换是不可以的,因为目标字节数大于源
char y = (char)x;//强制转换
System.out.println(y);//a
char z = 97;//不会报错,整数和整型是两个不两同的概念,所以直接赋值97(整数)不会像给一个int类型时报错
System.out.println(z);//a
}