Java标识符与关键字
一、Java关键字(Keyword)
1. 定义
关键字是Java语言预先定义、赋予特殊含义、专门留作系统使用的英文单词(或少量符号),不能被程序员当作普通名称使用(比如不能用关键字命名变量、类、方法)。
Java的关键字都是小写的,编译器会直接识别关键字并解析其特殊含义。
2. 核心特性
- 全小写(唯一例外:
null/true/false,虽不是严格关键字,但属于字面量,同样不能作为标识符); - 具有固定含义,对应Java的语法规则(如控制流程、类定义、访问修饰等);
- 数量固定,Java 8及常用版本核心关键字共50个左右(部分为保留字,暂未使用但预留)。
3. 常用关键字分类(附核心示例)
按用途分类更易记忆,核心常用关键字如下:
| 分类 | 核心关键字示例 | 用途说明 |
|---|---|---|
| 访问修饰符 | public、private、protected、default | 控制类/方法/变量的访问权限 |
| 类/接口相关 | class、interface、extends、implements | 定义类、接口,实现继承/实现 |
| 基本数据类型 | int、char、boolean、double、void | 声明变量的基本类型 |
| 控制流程 | if、else、for、while、switch、break | 实现条件、循环、分支逻辑 |
| 修饰符 | static、final、abstract、volatile | 修饰类/方法/变量的特性 |
| 程序执行 | return、new、this、super、try/catch | 返回值、创建对象、异常处理 |
4. 保留字
Java还有预留未使用的关键字(保留字),同样不能作为标识符,避免后续版本升级冲突,常见的有:goto、const。
二、Java标识符(Identifier)
1. 定义
标识符是程序员根据需求自定义的命名符号,用于给类、方法、变量、包、接口等Java元素命名,简单说:你写代码时需要自己取名的地方,用的就是标识符。
2. 【强制规则】必须遵守,否则编译报错
这是Java语法硬性要求,缺一不可:
- 由字母(A-Z/a-z)、数字(0-9)、下划线(_)、美元符号($) 组成;
- 不能以数字开头(比如
123name非法,name123合法); - 不能是Java关键字/字面量(比如
int、true、null不能作为标识符); - 区分大小写(比如
Name和name是两个完全不同的标识符)。
3. 【命名规范】建议遵守,提升代码可读性(行业通用)
这不是语法强制要求,但开发中必须遵循,是团队协作和代码可维护的基础,核心规范如下:
| 命名元素 | 规范要求 | 正确示例 | 错误示例 |
|---|---|---|---|
| 类/接口 | 大驼峰(每个单词首字母大写) | User、StudentInfo | user、studentinfo |
| 方法/变量 | 小驼峰(首字母小写,后续单词首字母大写) | getName、age | GetName、Age |
| 常量 | 全大写,单词间用下划线分隔 | MAX_SCORE、PI | maxScore、Pi |
| 包名 | 全小写,多级包用点分隔 | com.xxx.demo | Com.Xxx.Demo |
4. 合法/非法标识符示例
- 合法:
name、_age、$salary、Name123、user_info; - 非法:
123user(数字开头)、user-name(含减号)、int(关键字)、true(字面量)、user info(含空格)。
三、标识符与关键字的核心区别
| 特性 | 关键字 | 标识符 |
|---|---|---|
| 定义主体 | Java语言本身定义 | 程序员自定义 |
| 含义 | 固定、有特殊语法含义 | 无固定含义,仅作为命名符号 |
| 命名规则 | 系统固定(全小写) | 遵循Java强制规则+开发规范 |
| 使用限制 | 不能被修改、不能作为命名 | 符合规则即可自由命名 |
| 大小写 | 全小写(除字面量) | 区分大小写,按规范命名 |
四、易踩坑注意事项
- $符号的使用:虽然合法,但开发中不建议主动使用,因为Java编译器会自动为内部类等生成含
$的标识符,避免冲突; - 下划线的使用:可以用,但不要滥用(比如
___name),仅在常量中按规范分隔单词; - 中文命名:Java语法支持中文作为标识符(比如
姓名、学生),但绝对禁止使用,会导致代码跨平台/团队协作问题; - 关键字的大小写:比如
Int、IF不是Java关键字(因为关键字全小写),语法上可以作为标识符,但强烈不建议,会严重降低代码可读性。
总结
- 关键字是Java预留的特殊小写单词,有固定语法含义,不能自定义使用;标识符是程序员自定义的命名符号,需遵守强制规则和行业命名规范;
- 标识符核心强制规则:数字不能开头、仅含字母/数字/_/$、非关键字/字面量、区分大小写;
- 命名规范是开发必备:类用大驼峰、方法/变量用小驼峰、常量全大写下划线分隔、包名全小写。
浙公网安备 33010602011771号