java八种基本数据类型分为整数型(byte/short/int/long)、浮点型(float/double)、字符型(char)和布尔型(boolean);选择原则是“够用且高效”,兼顾范围、精度、内存与可读性。

Java 中有八种基本数据类型,它们按语义和用途可分为四类:整数型、浮点型、字符型和布尔型。区分关键在于存储大小、取值范围、默认值及典型使用场景;选择核心是“够用且高效”——不盲目追求大范围,也不因节省空间而牺牲可读性或引发溢出。
整数类型:按数值范围和内存占用分级
四种整数类型都是有符号的二进制补码表示,区别只在位数:
- byte(1字节,-128~127):最小整型,适合二进制流处理(如文件读写、网络包解析)、大型字节数组(如图像像素),但算术运算会自动提升为 int,不能直接用于循环变量或计数器
- short(2字节,-32768~32767):较少使用,多见于与 C/C++ 接口兼容或嵌入式历史系统,日常开发中几乎被 int 取代
-
int(4字节,-2147483648~2147483647):最常用整型,整数字面量(如
123)默认就是 int,适用于数组索引、循环计数、ID 编号等绝大多数场景 -
long(8字节,-9223372036854775808~9223372036854775807):用于超大整数,如毫秒级时间戳(
System.currentTimeMillis())、全球唯一 ID、人口/天文数量级统计;赋值时必须加L后缀(如1625097600000L),否则编译报错
浮点类型:精度与性能的权衡
都遵循 IEEE 754 标准,但精度和默认行为不同:
-
float(32位,6~7位有效数字):需显式加
f或F后缀(如3.14f);内存省但现代 CPU 对 double 优化更好,仅建议在大规模 float 数组(如图形渲染缓冲)中使用 -
double(64位,约15位有效数字):浮点数字面量默认类型(如
3.14159就是 double);科学计算、一般小数运算首选;注意它无法精确表示0.1这类十进制小数,金融计算务必改用BigDecimal
char 与 boolean:功能单一但不可替代
这两个类型用途明确,误用风险低但需注意细节:
-
char(2字节,\u0000~\uffff):表示单个 Unicode 字符(不是字节),底层是无符号 16 位整数;可参与算术运算(如
'a' + 1得'b'),但不能表示全部 Unicode 字符(如 emoji 需代理对,应优先用String) -
boolean(非固定字节,JVM 实现相关):只有
true和false两个值,不与整数互转(if (flag == true)是冗余写法,应写if (flag));成员变量默认值为false,局部变量必须显式初始化
怎么选?三个实用原则
不用死记硬背范围,抓住关键判断逻辑:
- 是否涉及二进制 I/O 或内存敏感场景?→ 优先
byte,其他情况避开short和byte做运算变量 - 数值会不会超过 21 亿?比如订单量、时间戳、用户数 → 必须用
long,且字面量带L - 是否需要精确小数?比如金额、百分比计算 → 放弃
float/double,改用BigDecimal;否则默认选double
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











