一、什么是标识符?(Identifier)
标识符是程序员为程序元素自定义的名称,用于给以下元素“起名”:
- 变量(如
userName) - 方法(如
calculateTotal()) - 类(如
Student) - 接口(如
List) - 包(如
com.example.utils) - 常量(如
MAX_SIZE)
代码示例:
public class Car { private int speed; // "speed" 是变量标识符 public void accelerate() { } // "accelerate" 是方法标识符 }二、Java 标识符的语法规则(必须遵守)
合法标识符必须同时满足以下规则,否则编译报错:
规则 | 错误示例 ❌ | 正确示例 ✅ |
1. 首字符不能是数字 |
|
|
2. 只能包含:字母(含Unicode如中文)、数字、下划线 |
|
|
3. 不能是 Java 关键字或保留字 |
|
|
4. 区分大小写 |
|
|
5. 长度无限制,但应简洁有意义 |
|
|
💡合法但不推荐的示例:
int $temp = 10; // 避免用 $ String 姓名 = "张三"; // 避免用中文(虽合法,但降低可读性)三、Java 标识符命名约定(官方推荐)
遵循命名约定能大幅提升代码可读性,以下是Java官方推荐的命名风格:
元素类型 | 命名风格 | 示例 |
类、接口 | 大驼峰(PascalCase):每个单词首字母大写 |
|
方法、变量 | 小驼峰(camelCase):第一个单词首字母小写,后续单词首字母大写 |
|
常量( | 全大写 + 下划线分隔 |
|
包名 | 全小写,无下划线,用域名倒写 |
|
布尔变量/方法 | 以 |
|
四、Java 关键字(Keywords)完整列表(共 53 个)
Java 有50 个正式关键字+3 个特殊保留字,共 53 个词绝对不能用作标识符。
4.1 关键字分类表(便于理解)
分类 | 关键字 |
访问控制 |
|
类/方法/变量修饰符 |
|
流程控制 |
|
错误处理 |
|
包/引用 |
|
数据类型 |
|
其他 |
|
4.2 50 个关键字按字母排序(便于记忆)
abstract assert boolean break byte case catch char class const continue default do double else enum extends final finally float for goto if implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while4.3 3 个“特殊保留字”(虽非关键字,但不能用作标识符)
词 | 说明 | 错误示例 ❌ |
| 布尔字面量(真) |
|
| 布尔字面量(假) |
|
| 空引用字面量 |
|
4.4 2 个“保留但未使用”的关键字
关键字 | 状态 | 说明 |
| 保留,但 Java 从未实现 | 避免使用,Java 用 |
| 保留,实际用 | 避免使用,定义常量用 |
五、标识符 vs 关键字 对比表
特性 | 标识符 | 关键字 |
来源 | 程序员自定义 | Java 语言预定义 |
能否修改 | 可自由命名 | 不能更改 |
是否区分大小写 | 是( | 是(但关键字全小写) |
能否用作变量名 | 可以(只要合法) | 绝对禁止 |
IDE 显示 | 通常黑色/灰色 | 通常蓝色高亮 |
六、常见错误示例
// 错误1:使用关键字 int class = 10; // "class" 是关键字! // 错误2:使用字面量 String null = "test"; // "null" 不能作标识符! // 错误3:以数字开头 double 3dPoint = 5.0; // 首字符不能是数字! // 错误4:包含非法字符 String user-name = "Alice"; // "-" 不合法,只能用字母、数字、_、$七、最佳实践建议
- 永远不要尝试用关键字命名:IDE 会直接报错,无需侥幸。
- 避免使用
$和中文:虽合法,但降低代码可读性和跨平台兼容性。 - 包名用公司域名倒写:如
com.alibaba.xxx、com.baidu.xxx,避免包名冲突。 - 常量全大写 + 下划线:
public static final int MAX_SIZE = 100;,一眼就能识别是常量。 - 方法名动词开头:
getUser()、saveData()、calculateTotal(),清晰表达方法功能。
总结
本文核心关键词:Identifier(标识符)、Keyword(关键字)、Reserved Word(保留字)、Naming Convention(命名约定)、camelCase(小驼峰)、PascalCase(大驼峰)。