码上焚香

Yahocen

Java 的数据类型

11
2024-09-06

Java数据类型分为两大类:基本类型(primitive types)和引用类型(reference types)。

基本类型

基本类型直接存储数值,它们在内存中占用固定大小的空间。Java 中的基本类型包括以下几种:

  1. 整数类型

    1. byte:8位有符号整数,取值范围为 -128 到 127。

    2. short:16位有符号整数,取值范围为 -32768 到 32767。

    3. int:32位有符号整数,取值范围为 -2^31 到 2^31 - 1。

    4. long:64位有符号整数,取值范围为 -2^63 到 2^63 - 1。

  2. 浮点类型

    1. float:32位浮点数,适合表示精度要求不高的小数。

    2. double:64位浮点数,精度更高,适合科学计算。

  3. 字符类型

    1. char:16位Unicode字符,用于表示单个字符。

  4. 布尔类型

    1. boolean:只有两个值,truefalse

引用类型

引用类型是通过引用指向内存中的对象。这些类型包括类(classes)、接口(interfaces)、数组(arrays)等。引用类型的特点是它们的大小不是固定的,而是由它们所引用的对象的大小决定的。

  1. 类(Classes)

    1. 类是对象的蓝图,定义了对象的属性和方法

    2. 例如 String 类就是一个引用类型

  2. 接口(Interfaces)

    1. 接口定义了一组方法签名,没有具体实现

    2. 例如 Runnable 接口就是一个常见的引用类型

  3. 数组(Arrays)

    1. 数组是一系列相同类型元素的集合,可以是基本类型或引用类型

    2. int[] numbers = new int[10]; 表示一个包含 10 个整数的数组

装箱与拆箱

在 Java 中,基本类型和对应的包装类(Wrapper Classes)之间可以自动转换,这一过程称为装箱(boxing)和拆箱(unboxing)。

  • 装箱:将基本类型值转换为对应的包装类对象

  • 拆箱:将包装类对象转换为基本类型值

例如:

Integer i = 10; // 自动装箱
int j = i;       // 自动拆箱

常用的包装类

Java 为每种基本类型提供了对应的包装类:

  • Byte 对应 byte

  • Short 对应 short

  • Integer 对应 int

  • Long 对应 long

  • Float 对应 float

  • Double 对应 double

  • Character 对应 char

  • Boolean 对应 boolean

数组

数组是一组有序的元素集合,可以是基本类型或引用类型。数组在声明时需要指定大小,一旦创建,其大小就是固定的

int[] intArray = new int[10]; // 整型数组
String[] stringArray = {"Hello", "World"}; // 字符串数组

泛型

从 Java 5 开始,Java 引入了泛型(Generics),这是一种类型安全的机制,允许在编译时检查类型的一致性。泛型可以用于类、接口和方法中,使代码更具灵活性和可重用性

public class Box<T> {
    private T item;

    public void set(T item) {
        this.item = item;
    }

    public T get() {
        return item;
    }
}

Box<Integer> integerBox = new Box<>();
integerBox.set(10);
System.out.println(integerBox.get()); // 输出 10