NIUCLOUD是一款SaaS管理后台框架多应用插件+云编译。上千名开发者、服务商正在积极拥抱开发者生态。欢迎开发者们免费入驻。一起助力发展! 广告
下面给出一份“速查表式”的整理,帮助你把 **Java 中的数据类型** 与 **日常编码中最常见的声明/使用方式** 一次性梳理清楚。 --- ### 1. 数据类型总览(两大类) | 类别 | 关键字 | 取值范围(近似) | 默认值 | 常见声明示例 | |------|--------|------------------|--------|--------------| | **整型** | `byte` | ‑128 ~ 127 | `0` | `byte b = 100;` | | | `short` | ‑32 768 ~ 32 767 | `0` | `short s = 30_000;` | | | `int`(默认) | ‑2³¹ ~ 2³¹-1 | `0` | `int i = 1_000_000;` | | | `long` | ‑2⁶³ ~ 2⁶³-1 | `0L` | `long l = 9_223_372_036_854_775_807L;`| | **浮点型** | `float` | IEEE-754 单精度 | `0.0f` | `float f = 3.14f;` | | | `double`(默认) | IEEE-754 双精度 | `0.0d` | `double d = 3.1415926;` | | **字符型** | `char` | 一个 UTF-16 码元 | `'\u0000'` | `char c = '中';` | | **布尔型** | `boolean` | `true / false` | `false` | `boolean ok = true;` | > 小结:8 种 **基本类型(primitive)** 以外的所有类型都是 **引用类型(reference)**,包括数组、类、接口、枚举、记录、String 等。 --- ### 2. 引用类型速查 | 类型 | 关键词 | 典型声明示例 | 备注 | |------|--------|--------------|------| | **字符串** | `String` | `String name = "Alice";` | 不可变、常量池 | | **数组** | `[]` | `int[] nums = {1,2,3};` | 定长;支持多维 | | **类** | `class` | `Point p = new Point(3,4);` | 封装数据+行为 | | **接口** | `interface` | `List<String> list = new ArrayList<>();` | 多态、解耦 | | **枚举** | `enum` | `enum Color { RED, GREEN }` | 单例、类型安全 | | **记录** | `record` | `record User(String name,int age){}` | Java 16+,不可变数据载体 | | **包装类** | 各基本类型的首字母大写 | `Integer val = 42;` | 自动装箱/拆箱 | --- ### 3. 日常最常见 6 种声明写法 1. **变量声明并初始化** ```java int age = 18; // 基本类型 String name = "Bob"; // 引用类型 ``` 2. **常量(编译期常量)** ```java static final double PI = 3.141592653589793; ``` 3. **数组** ```java int[] arr = new int[5]; // 默认 0,0,0,0,0 int[] arr2 = {1, 2, 3}; // 字面量 ``` 4. **泛型容器** ```java List<String> list = new ArrayList<>(); Map<Integer, Double> scores = new HashMap<>(); ``` 5. **枚举** ```java enum Season { SPRING, SUMMER, AUTUMN, WINTER } Season s = Season.SUMMER; ``` 6. **记录(Java 16+)** ```java record Person(String name, int age) {} Person p = new Person("Tom", 20); ``` --- ### 4. 容易踩坑的小提示 - `float` 字面量必须带 `f/F`,否则默认为 `double`。 - `long` 字面量建议加 `l/L`,但小写 `l` 与数字 `1` 易混,推荐大写 `L`。 - 包装类比较请用 `equals`,`==` 只比较引用(Integer 缓存范围 -128~127 除外)。 - `char` 是无符号 16 位整数,可做算术运算:`char c = 'A'; c++; // 'B'`。 --- ### 5. 一张思维导图(文字版) ``` Java 数据类型 ├─ 基本类型 (8 个) │ ├─ 整数:byte, short, int, long │ ├─ 浮点:float, double │ ├─ 字符:char │ └─ 布尔:boolean └─ 引用类型 ├─ 类 class(含 String) ├─ 接口 interface ├─ 数组 [] ├─ 枚举 enum ├─ 记录 record └─ 包装类 Integer, Double, ... ``` 把这张表/思维导图贴在 IDE 边栏或记笔记软件里,随时查阅即可。