Java基础之基本数据类型、封装类型

时间:2021-12-27 15:52:55

基本数据类型有4类8种

byte、short、int、long、float、double、boolean、char

(在栈中可以直接分配内存的数据是基本数据类型)(除此之外都是引用数据类型:数据的引用在栈中,但是它的对象在堆中)

Java为每个原始类型提供了封装类Byte、Short、Integer、Long、Float、Double、Boolean、Character


第一类:整形byte、short、int、long

byte(字节型)大小:1字节=8位=256个数(-128~127),默认值:0

short(短整型)大小:2字节=16位 0

int(整数类型)大小:4字节=32位 0

long(长整形)大小:8字节=64位 0

Java中默认的整数类型是int,如果定义float型,数值后加l或L。 默认的浮点型是double型,如果定义float型,加f或者F

第二类:浮点型float、double

float(浮点型单精度)大小:4字节=32位0.0f

double(双精度型)大小:8字节=64位0.0d

第三类:逻辑型boolean(true或false)

boolean(逻辑型)大小:1/8字节=1位   false

第四类:字符型char

char(字符型)大小:2字节=16位(一个字符能存储一个中文汉字)\u0000


数据类型之间的转换

 基本数据类型转换(由低级别到高级别为):

(byte、short、char)---> int ---> long ---> float ---> double


小可转大,大转小会失去精度。

低级到高级支持自动类型转换,高级到低级必须强制类型转换,包装类可过渡类型转换。

(有一个很形象的解释:假如你下命令,把一杯水倒入一个空桶中,我照着做就可以了。如果你下令,把一桶水倒入一个杯子里面,我就要警告你,请注意有可能桶里面的水太多,杯子装不下。

数据类型转换必须满足如下规则:

  • 1. 不能对boolean类型进行类型转换。

  • 2. 不能把对象类型转换成不相关类的对象。

  • 3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

  • 4. 转换过程中可能导致溢出或损失精度,例如:

    int i =128; 
    byte b = (byte)i;

    因为byte类型时8位,最大值为127,所以当强制转换为int类型值128时候就会导致溢出。

  • 5. 浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:

    (int)23.7 == 23; 
    (int)-45.89f == -45