Java 的数据类型在定义的时候就已经确定了,所以不能够随意的转换 java 的数据类型,但是 java 允许用户有限度的做类型转换处理。数据类型转换方式可以分为 “自动类型转换” 和 “强制类型转换” 两种。
在 java 中如果已经定义好了一个变量,在使用过程中如果需要另一种数据类型表示时,java 会在下面的条件成立的时候会自动做数据类型转换。
数据类型自动转换代码示例:
package com.haicoder.net.thread.typechange;
public class AutomaticChange {
public static void main(String[] args) {
System.out.println("嗨客网(www.haicoder.net)");
int x = 30;
float y = 22.19f;
System.out.println("x/y= " + x / y); //直接将结果转换为 float 类型
System.out.println("10 / 3.5 = " + (10 / 3.5));
System.out.println("10 / 3 = " + (10 / 3));
}
}
运行效果如下:
因为 float 的数据范围比 int 的数据范围大,所以用 float 的数据类型来接受结果。
强制类型转换也叫显示类型转换。前提是两个数据类型要兼容的。他可以分为扩大转换和缩小转换。如果是缩小转换,那么会将数据的精度丢失。
强制类型转换代码如下:
package com.haicoder.net.thread.typechange;
public class CompulsoryChange {
public static void main(String[] args) {
System.out.println("嗨客网(www.haicoder.net)");
float f = 30.3f;
int x = (int)f;
System.out.println("x = " + x);
System.out.println("10 / 3 = " + (float)(10 / 3));
}
}
运行效果如下:
强制类型转换需要在数据前将数据类型给出进行强制转换,从大范围到小范围的数据转换的时候,会将数据精确度丢失。