java变量必须明确类型、作用域和初值,声明格式为“类型+名字+分号”;变量名需合规,作用域限于声明位置所在代码块。

Java变量不是“写个名字就能用”的占位符,它必须明确类型、清楚在哪能用、确保有值可用——三者缺一不可。
变量声明:类型+名字+分号,少一个就编译失败
Java是强类型语言,声明变量时必须写出完整类型,比如int、String、boolean,后面紧跟合法变量名,结尾必须加分号。
- 正确写法:int count;、String title = "欢迎";
- 错误写法:count = 5;(没类型)、int 1num;(数字开头)、String name(缺分号)
- 同类型多个变量可合并声明:double x, y, z;,但只有带等号的才被初始化,如double x, y, z = 0.0;中仅z有初值
- 变量名要合规:首字符只能是字母、下划线或$;不能是class、if这类关键字;age和Age是两个不同变量
作用域:在哪声明,就在哪能访问
变量能不能被看到、能不能被修改,完全取决于它在代码结构中的位置,不是靠名字判断。
- 局部变量:在方法、for循环、if块或任意{}内声明,出了这个块就失效。例如for (int i = 0; i 里的i,循环外访问会报错
- 实例变量:在类里、所有方法外声明,属于对象本身,每个对象一份独立副本,可通过this或对象引用访问
- 静态变量:用static修饰,在类中方法外声明,属于类,所有实例共享,推荐用类名.变量名调用,比如User.count
- 遮蔽现象常见:方法参数或局部变量与成员变量同名时,会“遮蔽”后者,此时需用this.name明确指向成员变量
初始化:局部变量必须显式赋值,其他变量不建议依赖默认值
初始化不是锦上添花,而是使用前提。是否需要手动赋值,关键看变量类型和位置。
- 局部变量:只声明不赋值就使用,编译器直接拒绝,报错variable might not have been initialized
- 实例变量:未显式初始化时,Java自动给默认值(int→0、boolean→false、引用类型→null),但业务中往往需要有意义的初始状态,比如String status = "pending";
- 静态变量:类加载时初始化一次,可用静态代码块补充复杂逻辑,如static { count = loadFromConfig(); }
- 推荐做法:声明即初始化。既避免编译错误,也防止默认值掩盖逻辑缺陷,比如账户余额字段double balance;默认为0,可能让未设置初始值的问题难以察觉
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











