Java中的类型转换

Java程序中要求参与的计算的数据,必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。

可以分为:自动转换、强制转换

Java中的自动转换

特点:

1、系统自动完成的,不需要程序员手动修改代码

2、将取值范围小的类型 自动提升为 取值范围大的类型

具体实例

public static void main(String[] args) {
    int a = 1;
    byte b = 2;
    byte c = b + a; // 报错
    //int类型和byte类型运算,结果是int类型
    int d = b + a;
    System.out.println(d);
}

注意:

整数类型直接写会默认为int

小数类型直接写默认为double

类型的范围大小:byte < short(char) < int < long < float < double

 

Java中的强制转换

特点:

1、需要程序员手动修改代码

2、语法:

范围小的类型 变量名 = (范围小的类型)范围大的类型的数据

3、从范围小 到 范围大(将取值范围大的类型强制转换成取值范围小的类型。)

具体实例

实例1

int i = 1.5; // 错误

double 类型内存8个字节,int 类型内存4个字节。1.5double 类型,取值范围大于int 。可以理解为double 是8升的水壶,int 是4升的水壶,不能把大水壶中的水直接放进小水壶去。

想要赋值成功,只有通过强制类型转换,将double 类型强制转换成int 类型才能赋值。

实例2

int类型和double类型运算,结果是double类型,int类型会提升为double类型


public static void main(String[] args) {
    int i = 1;
    double d = 2.5;
    double e = d+i;
    System.out.println(e);
}

注意:

强制类型转换可能会造成数据的丢失哦,小伙伴们在应用时一定要慎重哦!

Boolean类型不能发生强制类型转换

byte short char 这三种数据类型发生数学运算时,会自动提升为int类型

https://www.cnblogs.com/libinhong/
原文地址:https://www.cnblogs.com/libinhong/p/10988463.html