数据类型转换
java数据类型可以分为基本数据类型和引用数据类型,这里数据类型的转换主要讲解的是基本数据类型的转换。
基本数据类型转换
可以分为 自动类型转换 、强制类型转换。
我们在转换中不管是哪种类型转换都需要注意一下原则:
- 不能对boolean类型进行类型转换;
- 把容量大的类型转换为容量小的类型时,必须使用强制类型转换;
- 类型转换过程中,可能会导致溢出或损失精度;
- 浮点数到整数的转换,是通过舍弃小数得到的,而不是四舍五入
自动类型转换
概念
自动类型转换,是指在基本类型中,容量小的数据类型可以自动转换为容量大的数据类型。在数据类型兼容的情况下,小转大就是自动类型转换,自动类型转换也被称为隐式类型转换,不需要我们做任何额外的操作。
转换规律
基本类型进行自动类型转换时的基本规律,如下:
-
自动类型转换必须满足,转换前数据类型的位数要低于转换后的数据类型;
-
当多种数据类型的数据混合运算时,Java首先会自动将所有的数据转换成容量最大的那种数据类型,然后再进行计算;
-
byte、short、char这三者之间不会相互转换,他们三者在计算时首先都会转换为 int 类型;
-
boolean类型不能与其他任何基本数据类型进行转换;
-
当把任意基本数据类型(包括boolean)的值和字符串进行连接运算时,基本数据类型的值会自动转换为字符串类型;
强制类型转换
概念
强制类型转换,其实是自动类型转换的逆过程,在数据类型兼容的情况下,将容量大的数据类型转换为容量小的数据类型。强制类型转换也被称为显式类型转换,需要我们显式地进行转换操作,必须在=等号后面的类型前加上强制()转换符,并且有可能会造成数据精度的降低或溢出。
转换规律
-
进行转换的数据类型必须是兼容的;
-
通常,字符串不能直接转换为基本类型;
-
通过基本类型对应的包装类,可以把字符串类型的数值转换成对应的基本类型。如String s = “100”; int i = Integer.parseInt(s);
-
boolean类型不可以转换成其他数据类型。