声明、初始化、赋值三者不同:声明仅告知变量名和类型,不分配内存;初始化是声明同时赋初值;赋值是修改已有变量的值;局部变量必须初始化后才能使用,否则编译报错。

Java 里“声明”“初始化”“赋值”不是一回事,混用容易出编译错误,尤其局部变量——没赋值就用,直接报错。
声明:只告诉编译器“我要用这个变量”
声明是让编译器知道变量的类型和名字,不分配内存,也不给值。它只是语法占位。
-
写法:
int count;、String name; - 成员变量(类里定义)声明后有默认值(如 int 默认 0,引用类型默认 null)
- 局部变量(方法内定义)声明后没有默认值,不能直接读取或参与运算
初始化:声明 + 首次赋值,一步到位
初始化 = 声明时顺手给个初始值。这是最安全、最推荐的写法,既清晰又避免未初始化错误。
-
写法:
int count = 10;、String name = "张三"; - 初始化发生在变量创建时,JVM 为其分配内存并写入初值
- 数组初始化也类似:
int[] arr = {1, 2, 3};或int[] arr = new int[3];
赋值:给已存在的变量换新值
赋值是对已经声明(且通常已初始化)的变量重新设置值,不改变类型,也不重复分配内存。
-
写法:
count = 25;、name = "李四"; - 可以多次赋值,只要变量在作用域内可见
- 局部变量必须先声明(或初始化),才能执行赋值;否则编译不通过
常见误区提醒
很多人以为“声明了就能用”,其实关键看变量在哪声明:
- 类字段(成员变量):声明即有默认值,可直接读,但 null 引用调用方法会抛 NullPointerException
- 方法内变量(局部变量):声明 ≠ 可用,必须显式初始化(声明时赋值,或之后单独赋值)才能使用
- 同一行写
int a, b = 5;只初始化了 b,a 仍是未初始化状态——别被逗号误导
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











