Java有8种基本数据类型:byte、short、int、long(补码有符号整数)、float、double(IEEE 754浮点近似值)、char(UTF-16字符)、boolean(true/false),均无方法、不可继承、无null值,声明即分配栈空间或自动初始化,默认值分别为0、0.0、false、'\u0000'。

Java里有8种基本数据类型,全部是语言内置的原始类型,不依赖类库、没有方法、不可继承,直接映射到内存中的固定大小空间。
整数类型:byte、short、int、long
都以补码形式存储有符号整数,选择主要看数值范围和内存需求:
- byte:1字节,范围 -128 ~ 127,适合网络传输或大量小整数(如像素值、状态码)
- short:2字节,范围 -32768 ~ 32767,使用较少,多见于底层协议或文件格式
- int:4字节,范围约 -21亿 ~ 21亿,最常用,默认整数字面量类型
- long:8字节,范围极大(±9.2×10¹⁸),用于时间戳、大序号等;字面量必须加 L(推荐大写,避免与数字1混淆)
浮点类型:float、double
遵循IEEE 754标准,表示近似值,不能精确表达多数十进制小数(如0.1):
- float:4字节,单精度,有效位约6~7位;字面量需加 F 或 f;适用于图形渲染、嵌入式等对精度要求不高、内存敏感场景
- double:8字节,双精度,有效位约15~16位;是默认浮点类型;日常计算首选,但金融计算仍应避免,改用 BigDecimal
字符与布尔类型:char、boolean
语义明确,用途不可替代:
立即学习“Java免费学习笔记(深入)”;
- char:2字节,表示一个UTF-16编码单元(0 ~ 65535),用单引号包裹(如 '中'、'\u4F60');不是字符串,不能参与算术运算(除非显式转型)
- boolean:无固定字节大小(JVM实现相关),仅取 true 或 false;不能转为数字,也不能用0/1代替;是 if、while 等控制流程中唯一合法的条件类型
基本类型的关键特性
理解这些有助于写出更安全、高效的代码:
- 声明即分配栈空间(局部变量)或自动初始化默认值(类成员:0、0.0、false、'\u0000')
- 没有 null 值,因此不会出现 NullPointerException;但包装类(如 Integer)可为 null,混用时要注意自动拆箱风险
- 运算中存在隐式类型提升(如 byte + byte → int),强制转型可能丢失精度
- 比较值相等用 ==;引用类型(包括包装类)用 == 比较的是地址,判值需用 equals()










