java变量声明是代码可读性与健壮性的第一道防线:命名需语义明确(如isemailverified)、声明即初始化、作用域最小化、var仅用于类型清晰的局部变量。

Java 变量声明不是语法填空,而是代码可读性与健壮性的第一道防线。写得清楚,改起来才不踩坑;声明得准,运行时才少出 NullPointerException。
命名要直说用途,别猜
变量名是给程序员看的说明书,不是给编译器听的暗号。看到 isEmailVerified 就知道这是个布尔状态,而 emailVerified 容易误判为 String 或其他类型。
- 布尔变量统一用 is、has、can 开头(如 isActive、hasPermission、canRetry)
- 用名词或形容词+名词组合表达实体或状态(pendingOrderIds、maxRetryCount、currentUser)
- 避免缩写模糊的名称:用 user 不用 usr,用 retryCount 不用 rc
声明即初始化,别留空位
局部变量不初始化就用会编译报错,这反而是保护机制;但字段若留着默认值(比如 List
- 字段尽量带初始化:private final List
tags = new ArrayList(); - 集合优先用不可变方式初始化:private final Set
roles = Set.of("ADMIN", "USER"); - 如果初始化可能抛异常(如读配置失败),就把声明放进 try 块里,不让异常影响外层逻辑
作用域越小越好,别堆在开头
变量离使用点越远,越容易被误用或遗忘。方法一开头列一堆 String name = null; int age = 0;,既干扰阅读,又增加空指针风险。
- 循环变量写进 for 语句里:for (int i = 0; i ,作用域天然受限
- 临时计算结果在哪用就在哪声明:var formattedDate = formatter.format(now); 而不是提前声明再赋值
- 条件分支中只在需要时声明:if (isValid) { String message = buildMessage(); send(message); }
类型要看得见,var 用得巧
var 是简化工具,不是隐藏类型的借口。它适合类型明确、生命周期短的局部变量,不适合字段、参数、返回值这类对外暴露的接口。
- 推荐场景:var jsonNode = objectMapper.readTree(json);(右边类型清晰)
- 禁止场景:var result = service.process(input);(返回类型模糊,别人看不懂)
- 字段、方法签名、构造函数参数一律显式写类型,不许用 var
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











