章节导读
本章定位:数据类型是 Java 程序的"物质基础"——一切数据操作都建立在正确的类型选择之上。本章系统讲解 Java 标识符命名规则与规范、常量的定义与使用、8 种基本类型的内存布局与取值范围、变量的声明与作用域、自动/强制类型转换规则,以及基本类型与包装类之间的自动装箱拆箱机制。这是 Java 语言基础中最容易被忽视却最能体现功底的部分。
飞翔科技场景导入
架构师大翔 code review 时发现实习生小崔用
double算工资,当场拍了桌子:"你小子想让财务找你喝茶?"白歌(导师)接过键盘,从
byte到boolean把 8 种基本类型的特点和坑讲了个遍。他特别强调:float和double遵循 IEEE 754,有精度损失——算钱必须用BigDecimal,但理解基本类型是一切的前提。小崔学完后感叹:"原来
Integer缓存了 -128 到 127,我说怎么两个Integer(100)==是 true,两个Integer(200)就变成 false 了——这东西面试必考吧?"白歌:"你说对了,这正是面试高频死亡题。"
知识图谱
各文件学习路线
| 文件 | 核心内容 | 难度 | 建议学时 |
|---|---|---|---|
| 变量概述.md | 标识符命名规则与规范、变量声明语法、作用域三大核心规则、常量(final / static final) | ★★☆ | 1.5 |
| byte.md | 字节型 byte,8位整数,-128~127,状态码最小单元 | ★☆☆ | 0.5 |
| short.md | 短整型 short,16位整数,年龄/年份等小范围数据 | ★☆☆ | 0.5 |
| int.md | 整型 int,32位默认整型,循环计数器首选主力 | ★☆☆ | 0.5 |
| long.md | 长整型 long,64位长整型,订单号/时间戳的容器 | ★☆☆ | 0.5 |
| float.md | 单精度浮点型 float,32位单精度,IEEE 754,精度损失原理 | ★★☆ | 1 |
| double.md | 双精度浮点型 double,64位双精度,科学计算默认浮点类型 | ★★☆ | 0.5 |
| char.md | 字符型 char,16位Unicode,转义字符 | ★☆☆ | 0.5 |
| boolean.md | 布尔型 boolean,真/假逻辑,支付状态/满勤判断 | ★☆☆ | 0.5 |
| 类型转换.md | 自动拓宽与强制窄化的交通规则 | ★★☆ | 1 |
| 基本类型与包装类.md | 装箱拆箱、Integer缓存、面试重灾区 | ★★★ | 1.5 |
前置知识
- 了解 Java 程序的基本结构(类、main 方法)
- 能够编译运行简单的 HelloWorld 程序
学习目标
- 掌握 Java 标识符命名规则与规范(大小写敏感、关键字限制、驼峰命名)
- 理解常量的定义方式(final / static final)及其命名规范(全大写+下划线)
- 熟练声明变量,遵循 Java 命名规范
- 记住8种基本类型的中文名称、内存大小、默认值和取值范围
- 正确选择数值类型:整数优先
int,浮点优先double,算钱用BigDecimal - 掌握自动拓宽与强制窄化规则,避免精度丢失
- 理解自动装箱拆箱机制和 Integer 缓存池(-128~127)
面试高频考点
| 考点 | 出现频率 | 典型问题 |
|---|---|---|
| 标识符命名规则 | 90% | 哪些字符可以出现在标识符中?关键字有哪些? |
| final vs static final | 80% | 常量的命名规范?编译时常量与运行时常量的区别? |
| Integer 缓存 | 95% | Integer a=100; Integer b=100; a==b 结果? |
| 浮点精度 | 85% | 0.1+0.2 等于多少?为什么? |
| 自动装箱拆箱 | 80% | 什么时候触发装箱?性能影响? |
| 类型转换 | 75% | short s=1; s=s+1 为什么编译错误? |
白歌的提醒:数据类型没有"高级"可言,但它是所有高级特性的地基。记不住
float的精度损失,写出财务 Bug 就不是"不小心",而是"不专业"。
准备好了吗?让我们从变量概述开始,逐步掌握 Java 的数据类型体系。