标识符是Java中用于命名变量、方法、类等元素的名称,必须以字母、下划线或$开头,后续可含字母、数字、_、$,区分大小写,且不能为关键字或true/false/null;推荐遵循大驼峰、小驼峰、全大写下划线等命名规范。

标识符就是你在Java里给变量、方法、类、接口、包这些元素起的名字。比如写 int age = 25;,这里的 age 就是一个标识符;又比如 public class Student { },Student 也是标识符。它不是语法结构,而是你用来“指代”程序中某个东西的名称。
合法标识符必须满足哪些基本条件
Java对标识符有明确的硬性要求,不满足就会编译报错:
- 首字符只能是字母(a–z、A–Z)、下划线 _ 或美元符号 $,不能是数字(如
123name非法) - 后续字符可包含字母、数字、_、$,但不能含空格、@、#、%、点号(.)、连字符(-)等任何其他符号
- 严格区分大小写:
count和Count是两个不同标识符 - 不能是Java关键字(如
class、public、if)或保留字(如goto、const) - 也不能用
true、false、null—— 它们虽非关键字,但语言层面已固化用途,禁止作为标识符
命名规范:不强制但强烈建议遵守
这些规则不会导致编译失败,但违反会显著降低代码可读性和协作效率:
-
类名/接口名:用大驼峰(UpperCamelCase),每个单词首字母大写,如
UserInfoService、Runnable -
方法名/变量名:用小驼峰(lowerCamelCase),首字母小写,后续单词首字母大写,如
getUserName()、isLoginSuccess -
常量名(
static final字段):全大写,单词间用下划线连接,如MAX_RETRY_COUNT、DEFAULT_TIMEOUT_MS -
包名:全部小写,用英文点号分隔,推荐反向域名风格,如
com.example.util、org.apache.commons.lang3 - 避免使用中文、拼音或无意义缩写(如
a、tmp1),优先选用清晰表达语义的英文词组合
常见错误示例与说明
下面这些写法在Java中都是非法的,容易踩坑:
立即学习“Java免费学习笔记(深入)”;
-
int 9score = 85;→ 开头是数字,不合法 -
String user-name = "Alice";→ 含连字符,非法字符 -
boolean class = true;→ 使用关键字class,编译直接失败 -
long $ = 100L;→ 虽然语法合法($ 是允许字符),但极度不推荐,影响可读性 -
float π = 3.14159f;→ Unicode字母(如希腊字母π)技术上允许,但团队协作中几乎不用,易引发编码或显示问题
为什么大小写敏感和见名知意这么重要
Java把 userName、username、USERNAME 视为三个完全不同的标识符。这种设计让命名更灵活,但也意味着拼写错误不会被自动纠正——比如调用 getUserNmae()(少了个 e)会导致编译报错“找不到方法”。所以坚持小驼峰、保持单词完整、准确反映用途(比如用 orderTotalPrice 而非 otp),能大幅减少低级错误,也让别人看你的代码时一眼明白意图。










