Java中数据类型的分类

1546523018148.png
1546523040239.png

整数默认是int类型,定义long类型的数据时,要在数据后面加L。

​ 浮点数默认是double类型,定义float类型的数据时,要在数据后面加F。

数据类型转换

隐式数据类型转换

取值范围小的数据类型与取值范围大的数据类型进行运算,会先将小的数据类型提升为大的,再运算.

案例代码:

/*
    +:是一个运算符,做加法运算的。
    我们在做运算的时候,一般要求参与运算的数据类型必须一致。
    
    类型转换:
        隐式转换
        强制转换
        
    隐式转换    
        byte,short,char -- int -- long -- float -- double
*/
public class TypeCastDemo {
    public static void main(String[] args) {
        //直接输出了运算的结果
        System.out.println(3 + 4);
        
        //定义两个int类型的变量
        int a = 3;
        int b = 4;
        int c = a + b;
        System.out.println(c);
        
        //定义一个byte类型,定义一个int类型
        byte bb = 2;
        int cc = 5;
        System.out.println(bb + cc);
        
        //我能不能不直接输出,用一个变量接受呢?
        //用变量接受,这个变量应该有类型
        //可能损失精度
        //byte dd = bb + cc;
        int dd = bb + cc;
        System.out.println(dd);
    }
}

eg:

class Demo {
    public static void main(String[] args) {
        byte a = 3;
        byte b = 4;
        byte c = (byte) (a + b);
        System.out.println(c);
        byte d = 3 + 4;
        System.out.println(d);
        int h = a + b;
        System.out.println(h);
        float e = 3.14F;
        System.out.println(e);
        long g = 12345678912345L;
        System.out.println(g);
    }
}

强制类型数据转换

强制转换的格式

​ * b = (byte)(a + b);

强制转换的注意事项

如果超出了被赋值的数据类型的取值范围得到的结果会与你期望的结果不同

案例代码:

/*
    强制转换:
        目标类型 变量名 = (目标类型) (被转换的数据);
        不建议强制转换,因为会有精度的损失。
*/
public class TypeCastDemo2 {
    public static void main(String[] args) {
        int a = 3;
        byte b = 4;
        int c = a + b;
        //byte d = a + b;
        byte d = (byte) (a + b);
    }
}

你可能感兴趣的:(Java中数据类型的分类)