Java基本类型默认值仅适用于类成员变量:byte/short/int/long为0,float为0.0f,double为0.0,char为'\u0000',boolean为false;局部变量无默认值,数组元素自动初始化,包装类及引用类型默认为null。

Java 基本数据类型的默认值不是靠“运行时查看”或“打印出来才知”,而是由 JVM 规范明确定义的固定规则。你不需要查文档运行一遍,只要理解它生效的前提和表现形式,就能准确知道每个类型在什么情况下取什么默认值。
默认值只对类成员变量生效
这是最关键的前提:只有声明在类内部、但未显式赋值的字段(包括 实例变量 和 static 变量),JVM 才会自动赋予默认值。
- byte、short、int、long → 默认为 0(注意 long 是 0L,字面量写法)
- float、double → 默认为 0.0f 和 0.0(double 后缀可省略)
- char → 默认为 '\u0000'(Unicode 空字符,不是空格,也不是 null)
- boolean → 默认为 false
局部变量没有默认值,编译器会直接报错
方法内部定义的变量(比如 int x;),JVM 不做任何初始化。如果没赋值就使用,编译阶段就会提示:
error: variable x might not have been initialized这反而是验证默认值规则最直接的方式——它不给你默认值,就说明它根本不在这个作用域里生效。
数组元素自动按类型初始化
无论数组是成员变量还是局部变量,只要执行了 new 创建,所有元素都会被设为对应类型的默认值:
-
int[] a = new int[3];→ 元素是 {0, 0, 0} -
boolean[] b = new boolean[1];→ 元素是 {false} -
char[] c = new char[2];→ 元素是 {'\u0000', '\u0000'}
你可以用循环打印验证,但本质仍是规则驱动,不是“查”出来的。
分析 Java Spring Boot 后端 Controller 代码,自动生成 Markdown 格式的接口文档。当用户说“生成 Java 接口文档”、“生成 API 文档”、“从 Spring 代码生成文档”时触发。
包装类和引用类型默认是 null
别混淆基本类型和包装类:Integer、Boolean、String 等引用类型作为成员变量时,默认值是 null,不是 0 或 false。
例如:
-
Integer i;→ 成员变量默认为 null,不是 0 -
int j;→ 成员变量默认为 0 - 若写
int k = i;(i 为 null),运行时报 NullPointerException
这也从反面印证了基本类型默认值的存在边界——只属于基本类型,且只在成员变量场景下成立。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










