Java基础04——类型转换
类型转换
-
由于Java是强类型语言所以要进行有些运算的时候的,需要用到类型转换。
低 ------------------------------------------ 高 byte,short,char-> int -> long -> float -> double
-
运算中,不同类型的数据先转化为同一类型,然后进行运算。
JAVA基本类型之间转换的两种方式:
1. 强制类型转换(高 ——> 低)
-
语法:
(需要转换成的类型) 变量名
-
示例:
public class Test { public static void main(String[] args) { int a = 127; // 强制转换 (类型)变量名 高-低 byte b = (byte) a; System.out.println("a = " + a);// 127 System.out.println("b = " + b);// -127 } }
2. 自动类型转换(低 ——> 高)
-
语法:
直接等于
-
示例:
public class Test { public static void main(String[] args) { int a = 128; // 自动转换 低 - 高 double b = a; System.out.println("a = " + a);// 128 System.out.println("c = " + c);// 128.0 } }
内存溢出
如下代码所示:
public class Test {
public static void main(String[] args) {
/*
byte是8位1字节,所表示十进制数的范围为 -128——127
int是32位4字节,所表示十进制数的范围为 -2147483648—— 2147483647
*/
int a = 128;
// 强行转换为导致内存溢出,最终输出为-128
byte b = (byte) a;
System.out.println("a = " + a);// 128
System.out.println("b = " + b);// -128
}
}
注意点
-
不能对布尔值转换
-
不能把对象类型转换为不相干的类型
-
在把高容量转换低容量的时候,强制转换
-
转换的时候可能存在内存溢出,或者精度问题