java变量是受类型、位置和生命周期约束的内存容器,关键在声明(需明确类型和分号)、初始化(局部变量必须显式赋值,成员变量虽有默认值但应主动初始化)、作用域(局部变量限于块内,实例变量属对象,类变量用static修饰且共享)。

Java 变量不是“写完就能用”的简单符号,而是受类型、位置和生命周期严格约束的内存容器。掌握它,关键在三点:怎么写(声明)、什么时候给值(初始化)、在哪里能用(作用域)。
变量声明必须带类型和分号
Java 是强类型语言,每个变量声明都得明确类型,且语句以分号结尾——漏掉分号会直接编译失败。
-
基本写法:类型名 + 变量名,例如
int count;、String name; -
同类型多变量可合并:如
double x, y, z;,但不推荐混用,易读性差 -
命名要合规:首字符是字母、
$或_;不能是关键字(如class、int);区分大小写(age和Age是两个变量)
初始化不是可选项,而是使用前提
局部变量(方法内定义)必须在使用前显式赋值;成员变量(类里方法外)虽有默认值,但依赖默认值容易埋坑。
Java项目代码review工具。分析Git变更+完整调用链路上下文,推断业务需求,进行多维度评分和分类汇总,生成完整PRD文档。包含细粒度Java代码审查清单(Null安全、异常处理、Streams、并发、equals/hashCode、资源管理、API设计、性能、MyBatis/ORM、事务边界、SQL/DD...
-
局部变量无默认值:只声明不赋值就打印,编译器直接报错
variable might not have been initialized -
成员变量有默认值:
int默认0,boolean默认false,引用类型默认null,但业务逻辑中往往需要的是有意义的初始值 -
推荐做法:声明即初始化,比如
String status = "pending";,比先声明再赋值更安全、更清晰
作用域决定变量“活多久”和“在哪能见”
变量能不能用、用的是哪个,全看它在哪声明。作用域不是凭感觉,而是由代码结构严格划定的边界。
-
局部变量:在方法、for 循环或花括号
{}内声明,出了这个块就不可见,比如循环里的i在循环外访问会报错 - 实例变量:在类里、方法外声明,属于对象,每个对象一份,随对象创建而存在,随对象回收而消失
-
类变量(static):加
static修饰,属于类本身,所有实例共享同一份,加载类时就存在,整个程序运行期间一直有效
常见陷阱与应对建议
很多初学者栽在细节上,不是概念不懂,而是没踩准规则边界。
-
局部变量遮蔽成员变量:方法里声明了和成员变量同名的局部变量,访问时用的是局部的。想调用成员变量,加
this.前缀,比如this.name - 误信“未初始化也能用”:对局部变量心存侥幸,结果编译不过;对成员变量过度依赖默认值,导致业务逻辑出错(比如账户余额默认为 0,但实际应为 null 或抛异常)
-
用 var 要谨慎:JDK 10+ 支持
var count = 5;,但仅限局部变量,且必须能推断出明确类型;不要在返回值、字段或泛型中用,否则降低可读性
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










