Java 基本数据类型(详细介绍)

一、简介

在 Java 中,会根据变量的数据类型为变量分配存储空间,被分配的空间只能用来储存该类型数据,不同的数据类型会占用不同的内存空间。合理的使用可以避免空间的浪费,确保数据的准确性,便于理解变量的用途,用于表示最基本的数据形式。


二、基本数据类型

Java 中有 8 种基本数据类型,分别为:

  • 6 种数值类型:
    • 4 种整数型:byte、short、int、long
    • 2 种浮点型:float、double
  • 1 种字符类型:char
  • 1 种布尔型:boolean。

这 8 种基本数据类型的默认值以及所占空间的大小如下表:

基本类型字节数默认值取值范围
byte10-27 ~ 27 -1
short20-215 ~ 215 -1
int40-231 ~ 231 -1
long80L-263 ~ 263 -1
float40.0F1.4E-45 ~ 3.4028235E38
double80.0d4.9E-324 ~ 1.7976931348623157E308
char2‘u0000’0 ~ 65535
boolean1falsetrue、false

可以看到,像 byte、short、int、long能表示的最大正数都减 1 了。这是为什么呢?这是因为在二进制补码表示法中,最高位是用来表示符号的(0 表示正数,1 表示负数),其余位表示数值部分。所以,如果我们要表示最大的正数,我们需要把除了最高位之外的所有位都设为 1。如果我们再加 1,就会导致溢出,变成一个负数。

⚠️注意:

  • Java 里使用 long 类型的数据一定要在数值后面加上 L,否则将作为 int 类型解析。
  • Java 里使用 float 类型的数据一定要在数值后面加上 fF,否则将作为 double 类型解析。

这八种基本类型都有对应的包装类分别为:Byte、Short、Integer、Long、Float、Double、Character、Boolean 。


三、数据类型装换

3.1 自动类型转换

当把一个取值范围小的数据类型的值赋给一个取值范围大的数据类型的变量时,会自动进行类型转换。

public class Main {
    public static void main(String[] args) {
        byte b = 10;
        // 会自动将 byte 转换为 int
        int i = b; 
    }
}

自动类型转换遵循的规则是从低精度向高精度转换,常见的转换顺序为:

---------------------------------------------byte, short, char -> int -> long -> float -> double 

3.2 强制类型转换

当把一个取值范围大的数据类型的值赋给一个取值范围小的数据类型的变量时,需要进行强制类型转换。但强制类型转换可能会导致数据丢失或精度降低。

public class Main {
    public static void main(String[] args) {
        double d = 10.5;
        // 强制将 double 转换为 int 类型,小数部分会被抹去,而不是四舍五入
        int i = (int) d;
    }
}

在进行强制类型转换时,需要特别小心,确保转换的结果是符合预期的,否则可能会出现意外的结果。

public class Main {
    public static void main(String[] args) {\
    	// 二进制:00000000 00000000 00000001 00000001
        int i = 257; 
        // 二进制:00000001
        byte b = (byte) i;
        System.out.println("强制转换后的值:" + b);
    }
}

运行结果:

强制转换后的值:1

⚠️解释: 由于 byte 类型是 1 个字节,而 int 类型是 4 个字节。在进行强制转换时,由于 byte 只能存储一个字节,byte 类型会取 int 类型的最后一个字节,所以将 int 类型的最后一个字节转换成 10 进制的整数后,所以就为 1。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

野生派蒙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值