Skip to content

Java 数据类型

在 Java 中,每一个变量都有一个类型,这个类型决定了变量可以存储什么样的数据,以及可以对这些数据执行哪些操作。Java 的数据类型分为两大类:基本数据类型 (Primitive Data Types)引用数据类型 (Reference Data Types)

1. 基本数据类型 (Primitive Data Types)

基本数据类型是 Java 语言内置的、最基础的数据类型。它们不是对象,直接存储数据值。Java 中共有 8 种基本数据类型。

整数类型

用于表示没有小数部分的数值。

  • byte:

    • 大小: 1 字节 (8 位)
    • 范围: -128 到 127
    • 用途: 在需要节省内存且数值范围不大的情况下使用,例如处理文件流或二进制数据。
  • short:

    • 大小: 2 字节 (16 位)
    • 范围: -32,768 到 32,767
    • 用途: 同样用于节省内存,比 byte 范围大。
  • int:

    • 大小: 4 字节 (32 位)
    • 范围: -2,147,483,648 到 2,147,483,647
    • 用途: 最常用的整数类型。默认情况下,您写的任何整数(如 100)都被视为 int 类型。
  • long:

    • 大小: 8 字节 (64 位)
    • 范围: 非常大
    • 用途: 当 int 不足以存储一个很大的整数时使用。注意: long 类型的值在末尾需要加上 Ll。例如:long bigNumber = 1234567890123L;

浮点类型

用于表示带有小数部分的数值。

  • float:

    • 大小: 4 字节 (32 位)
    • 精度: 单精度,约 6-7 位十进制有效数字。
    • 用途: 用于需要小数但对精度要求不高的场景。注意: float 类型的值在末尾需要加上 Ff。例如:float price = 19.99F;
  • double:

    • 大小: 8 字节 (64 位)
    • 精度: 双精度,约 15 位十进制有效数字。
    • 用途: 最常用的浮点类型。提供了更高的精度。默认情况下,您写的任何小数值(如 3.14)都被视为 double 类型。

字符类型

  • char:
    • 大小: 2 字节 (16 位)
    • 编码: Unicode 字符。
    • 用途: 存储单个字符。值必须用单引号 (') 括起来。例如:char grade = 'A';, char chineseChar = '中';

布尔类型

  • boolean:
    • 大小: JVM 并未明确规定其大小,通常认为是 1 位。
    • : 只能是 truefalse
    • 用途: 用于逻辑判断和条件控制,是所有关系运算的结果。
java
public class DataTypesExample {
    public static void main(String[] args) {
        // 整数类型
        int myAge = 30;
        long population = 8000000000L;

        // 浮点类型
        double pi = 3.1415926535;
        float temperature = 36.6F;

        // 字符类型
        char initial = 'J';

        // 布尔类型
        boolean isLoggedIn = true;

        System.out.println("年龄: " + myAge);
        System.out.println("世界人口: " + population);
        System.out.println("圆周率: " + pi);
        System.out.println("体温: " + temperature);
        System.out.println("首字母: " + initial);
        System.out.println("登录状态: " + isLoggedIn);
    }
}

2. 引用数据类型 (Reference Data Types)

与基本数据类型直接存储值不同,引用数据类型存储的是对内存中某个对象引用(可以理解为内存地址)。

  • 变量本身不存储对象,而是存储一个指向该对象的“指针”。
  • 所有使用 new 关键字创建的类型的变量都是引用类型。
  • 如果一个引用变量没有指向任何对象,它的值为 null

常见的引用数据类型包括:

  • 类 (Classes): 所有由 class 定义的类型,例如我们之前创建的 Dog 类,以及 Java 内置的 String 类。
  • 接口 (Interfaces): 由 interface 定义的类型。
  • 数组 (Arrays): 用于存储同类型元素的集合。
java
// String 是一个非常常用的引用类型
String greeting = "Hello, Java!";

// Dog 是我们自定义的类,myDog 是一个引用变量
Dog myDog = new Dog(); // myDog 存储了新创建的 Dog 对象的地址

// 数组也是引用类型
int[] numbers = new int[5]; // numbers 存储了新创建的数组对象的地址

基本类型 vs. 引用类型:关键区别

特性基本数据类型 (Primitive)引用数据类型 (Reference)
存储内容变量直接存储数据变量存储对象的内存地址(引用)
存储位置栈内存 (Stack)对象本身在堆内存 (Heap),引用在栈内存
默认值数值类型为 00.0booleanfalsechar\u0000null
大小固定大小 (e.g., int is 4 bytes)大小可变

理解这两种数据类型的区别对于掌握 Java 的内存管理和对象操作至关重要。

本站内容仅供学习和研究使用。