类型转换

24-类型转换-自动类型转换

将一个变量从一个类型改为另外一种类型的过程。例如字符串的”1″改变为整数的1。

如果占用的内存空间小的数转为较大内存空间的数,程序会自动转换,不需要写代码实现。反之则需要强制类型转换(需要写代码实现)。

比如计算float和int的和的时候,程序会先把int转换为float,然后再计算他们的和。

byte < short < char < int < long < float < double

空间是后面的大于前面的。

练习

定义 byte、int、float、double、char 这些变量并赋值,然后计算他们的算术运算的结果。

byte b = 127;
int i = 128; //这里发生了自动类型转换 byte转为int类型
//byte b2 = i; //但是把int转为byte 则可能会溢出 所以报错
byte b2 = (byte)i; //强制类型转换 结果可能是错的

long l = i;
float f = l;
double d = f;
//float f2 = d; //double转float需要强制类型转换
System.out.println(b2);Code language: JavaScript (javascript)

25-强制类型转换

占的内存空间大的转为内存空间小的,则需要显式类型转换(强制类型转换)。

强制类型转换用 (类型)变量 的式子转换。

如果强制类型转换的时候数据比较大,则可能会溢出,溢出则得到的数可能不正确。

比如把short类型转换为byte类型的时候,byte最大是127。

Boolean类型不能转换为其他类型,反过来也是。

int i = 128;
//byte b2 = i; //把int转为byte 则可能会溢出 所以报错
if (i > 127) {
	System.out.println("i的值已经大于127了,这里发生溢出了。");
	return;
}
byte b2 = (byte)i; //强制类型转换 结果可能是错的Code language: JavaScript (javascript)
Previous:
Next:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注