Java中8种基本数据类型作为类成员变量时有默认值:整型(byte/short/int/long)为0,浮点型(float/double)为0.0f/0.0d,char为'\u0000',boolean为false;局部变量无默认值,未初始化即报错。

Java 中 8 种基本数据类型在作为类的成员变量(即字段)声明但未显式初始化时,会被 JVM 自动赋予确定的默认值。这个特性只适用于类成员变量,不适用于局部变量——后者必须显式赋值才能使用,否则编译报错。
整型默认值都是 0
包括 byte、short、int、long 四种整数类型,无论位宽大小,只要没赋值,系统就填 0:
- byte 和 short:默认为数值 0(不是 0L 或 0.0)
- int:最常用,默认就是 0
- long:默认值写作 0L,表示 long 类型的零;虽然数值上等于 0,但类型标记很重要,尤其在涉及字面量推断时
浮点型默认值是 0.0f 和 0.0d
float 和 double 的默认值有明确类型后缀:
你接手一个需求时,是不是经常这样:"改一个小字段 → 结果把不相关的代码也改了"、"需求说得很模糊 → 做着做着发现跑偏了"、"数据库加个字段 → 上线才发现漏了数据兼容"、"做了个新功能 → 一个月后自己都忘了当时怎么设计的"、"写到一半被中断 → 再回来不知道从哪继续";这个 Skill 就是专门解决这些问题的。 它会自动探测你的项目环境(JDK、Spring Boot、ORM、数据库、前端框架),记在
- float 默认为 0.0f(单精度零)
- double 默认为 0.0d(双精度零),也可简写为 0.0,因为 double 是浮点数的默认类型
字符型默认是 '\u0000'
char 的默认值是 Unicode 码点为 0 的空字符,即 '\u0000'。它不是空格(' ')、不是 null,也不等同于字符串 "",而是一个真实存在的、不可见的控制字符。
立即学习“Java免费学习笔记(深入)”;
布尔型默认是 false
boolean 只有两个取值:true 和 false,其默认值严格为 false。注意它和数字 0、null 或 "" 没有等价关系,不能参与算术或字符串隐式转换。
提醒:以上默认值仅对类的成员变量生效;方法内的局部变量若未初始化就访问,编译器会直接报错,不会给默认值。

















