时间:2026-04-09 11:43
人气:
作者:admin
在Java中,变量、方法、类等需要命名时使用的字符序列,称为 标识符(Identifier)。
使用技巧:凡是需要自定义名字的地方都叫标识符。如:类名、方法名、变量名、包名、常量名等。
Java标识符必须遵守如下硬性规则,否则编译不通过:
true、false、null。虽然编译器不强制,但遵守以下规范能让代码更专业、可读性更高,如果不遵守,虽然编译和运行可以正常运行,但容易被人鄙视!
| 程序元素 | 命名规范 | 示例 |
|---|---|---|
| 包名 | 全小写,域名倒序,单词之间用点分隔 | com.example.util |
| 类名、接口名 | 大驼峰命名法(每个单词首字母大写) | Student, ArrayList, Runnable |
| 方法名、变量名 | 小驼峰命名法(首字母小写,后续单词首字母大写) | getAge(), studentName |
| 常量 | 全大写,单词间用下划线分隔 | MAX_VALUE, DEFAULT_TIMEOUT |
| 类型参数(泛型) | 单个大写字母,常用 T, E, K, V | class Box |
命名时尽量见名知意,使用完整单词而非拼音,避免使用 a、b、c 等无意义缩写(临时循环变量除外)。
| 标识符 | 是否合法 | 说明 |
|---|---|---|
| _count | ✅ | 合法,但不推荐 |
| $value | ✅ | 合法,但不推荐 |
| studentName | ✅ | 规范,小驼峰 |
| StudentName | ✅ | 合法,但通常用于类名 |
| MAX_SIZE | ✅ | 合法,常量命名 |
| class | ❌ | 关键字 |
| 123abc | ❌ | 数字开头 |
| my name | ❌ | 包含空格 |
| user-name | ❌ | 包含减号(减号不是合法字符) |
| int | ❌ | 关键字 |
| true | ❌ | 布尔字面量 |
| 年龄 | ✅ | 合法,但不推荐 |
| String | ✅ | 合法,但会遮蔽 java.lang.String |
避免使用美元符号 $ 和下划线 _ 开头
虽然合法,但 $ 在编译器内部有特殊用途(如内部类编译后的文件命名),下划线开头易与系统变量混淆。
✅ 推荐:name, age, calculateTotal
⚠️ 不推荐:_name, $value
不要与Java标准库类名冲突
即使不是关键字,使用与JDK常用类相同的名称也会造成混淆,降低可读性。
❌错误: class String { ... } 虽然合法,但会覆盖 java.lang.String,导致无法正常使用字符串。
可以使用Unicode字符,但应谨慎
Java支持Unicode标识符(如中文、希腊字母),但在跨平台、编码不统一时容易引发乱码。
❌ 不推荐:int 年龄 = 20;
✅ 推荐:int age = 20;
标识符中不能有空格或特殊符号
❌ my name, user@name, first-name 非法
数字不能放在开头,但可以放在中间或结尾
✅ num1, count2, value3
❌ 1num
严格遵循命名规则,确保代码编译通过。
采用驼峰命名法,保持风格一致。
使用英文单词,避免使用中文或中文拼音,提高可读性和跨团队协作效率。
避开关键字和保留字,包括未来可能成为关键字的词(如 record, sealed)。
常量全大写加下划线,区分变量。
包名全小写,使用域名倒序避免冲突。
【从0到1构建一个ClaudeAgent】协作-Agent团队