掌握Java八种基本类型需理解底层逻辑:整数按字节分层(byte/short/int/long),默认值为0,字面量默认int需L后缀;浮点数float/double遵循IEEE 754,字面量默认double需f后缀,不可用==比较。

掌握Java八种基本类型,关键不是死记硬背数字,而是理解它们的底层逻辑和使用边界。下面从四个实用角度帮你理清脉络。
整数类型:按字节大小分层记忆,重点盯住默认值和字面量规则
byte(1字节)、short(2字节)、int(4字节)、long(8字节)都是有符号补码表示,范围对称但负数多1个。比如byte是-2⁷到2⁷−1,即-128~127;int是-2³¹到2³¹−1,即-2147483648~2147483647。
- 成员变量未赋值时,默认值统一为0(long是0L);局部变量必须显式初始化,否则编译报错
- 整数字面量默认是int类型:写
int x = 100;没问题,但long y = 2147483648;会报错——因为2147483648已超int上限,必须写成2147483648L - 运算时自动提升:
byte a = 1; byte b = 2; byte c = a + b;编译失败,因为a+b结果是int,需强制转:byte c = (byte)(a + b);
浮点类型:区分精度与默认行为,避免常见陷阱
float占4字节,约±3.4×10³⁸,有效位6~7位;double占8字节,约±1.8×10³⁰⁸,有效位约15位。二者都遵循IEEE 754标准,不适用于精确计算(如金额)。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
- 字面量默认是double:写
3.14等价于3.14d;要声明float必须加f或F,如3.14f - 默认值分别是
0.0f和0.0d,注意不是0 - 不要用==比较浮点数,应使用
Math.abs(a - b) 判断是否“足够接近”
字符与布尔类型:别被表象迷惑,看清本质限制
char是无符号16位整数,范围0~65535(即'\u0000'~'\uffff'),本质不是“字符对象”,不能存emoji(超出BMP需代理对)。boolean只有true/false两个值,JVM未规定具体字节大小,但数组中按1字节对齐。
立即学习“Java免费学习笔记(深入)”;
- char必须用单引号:'
A'合法,"A"是String,类型不同 - boolean不能转int,也不能参与算术运算,
if (flag == true)建议简写为if (flag) - 成员变量boolean默认是
false,不是null(基本类型不可为null)
快速验证与日常习惯:用代码确认,靠实践固化
光看范围容易模糊,动手查最可靠。Java提供所有基本类型的包装类常量,比如Byte.MAX_VALUE、Integer.MIN_VALUE、Double.POSITIVE_INFINITY等。
- 在IDE里写
System.out.println(Byte.MAX_VALUE);立刻看到结果,比背数字更直观 - 处理大数时优先选long,时间戳、数据库主键ID等场景几乎必用
- 内存敏感场景(如海量像素、网络包解析)才考虑byte/short,日常开发int足矣

















