Bootstrap

JAVA 基本数据类型

一、JAVA 基本数据类型

数据类型关键字字节取值范围
整形byte1字节-128 ~ 127
short2字节-32768 ~ 32767
int4字节-2147483648 ~ 2147483647
long8字节-9223372036854775808 ~ 9223372036854775807
浮点数float4字节-3.401298e-38 ~ 3.402823e+38
double8字节-4.9000000e-324 ~ 1.797693e+308
字符char2字节0 ~ 65535
布尔boolean1字节true 、false

二、数据类型转换

        数据类型转换分为两种:隐式转换(自动类型转换)和强制转换

                强制转换:取值范围大的转换为取值范围小的

                隐式转换:取值范围小的转换为取值范围大的

                整数和浮点数的取值范围比较(从小到大):byte->short->int->long->float->double

        注意:进行强制转换时有可能造成精度丢失或溢出

隐式转换的演示

//因为int的取值范围小于float的取值范围,进行隐式转换
        int a = 10;
        float b = a;
        System.out.println(b);//输出结果:10.0

强制转换的演示

//因为short的取值范围大于byte的取值范围,进行强制转换
        short a = 1000;
        byte b = (byte) a;
        System.out.println(b);//输出结果:-24

扩展:数据转换的原理

        数据转换是在补码的基础进行操作的

        说明:原码、反码和补码是计算机中数据的二进制表示形式

用补码来解释隐式转换

//因为int的取值范围小于float的取值范围,进行隐式转换
        byte a = 10;//补码表示:0000 1010
        short b = a;//补码表示:0000 0000 0000 1010
        //由1字节变为2字节,即在前面加上0000 0000
        System.out.println(b);//输出结果:10

用补码来解释强制转换

//因为short的取值范围大于byte的取值范围,进行强制转换
        short a = 1000;//补码表示:0000 0011 1110 1000
        byte b = (byte) a;//补码表示:1110 1000
        //由2字节变为1字节,即去掉前面的0000 0011
        System.out.println(b);//输出结果:-24
;