标识符和关键字
1.以下是Java关键字(含保留字及新增关键字)的用途说明,按字母顺序排列,采用两列清晰展示:
| 关键字 | 主要用途 |
|---|---|
| abstract | 声明抽象类(不可实例化)或抽象方法(无具体实现,子类需重写)。 |
| assert | 调试用,检查条件是否为真,不满足时抛出AssertionError(需启用-ea参数)。 |
| boolean | 声明布尔类型变量(值只能是true或false)。 |
| break | 终止当前循环(for/while/do-while)或switch语句,跳转到后续代码。 |
| byte | 声明8位有符号整数类型变量(范围:-128 ~ 127)。 |
| case | 在switch语句中定义分支条件(匹配值后执行对应代码)。 |
| catch | 捕获try块中抛出的异常,定义异常处理逻辑。 |
| char | 声明16位Unicode字符类型变量(范围:\u0000 ~ \uFFFF)。 |
| class | 声明一个类(对象的模板,包含属性和方法)。 |
| const | 保留关键字(未实际使用,原计划用于常量声明)。 |
| continue | 跳过当前循环的剩余代码,直接进入下一次循环迭代。 |
| default | 在switch语句中定义默认分支(所有case不匹配时执行)。 |
| do | 与while结合,定义后测试循环(循环体至少执行一次)。 |
| double | 声明64位双精度浮点数类型变量(精度约15-17位有效数字)。 |
| else | 与if结合,定义条件不满足时执行的代码块。 |
| enum | 声明枚举类型(有限的命名常量集合,如Color.RED)。 |
| exports | 模块系统(Java 9+)中声明当前模块导出的包(允许其他模块访问)。 |
| extends | 声明类继承父类(单继承),或接口继承父接口(多继承)。 |
| final | 修饰类(不可被继承)、方法(不可被重写)或变量(不可修改的常量)。 |
| finally | 与try/catch结合,定义无论是否发生异常都执行的代码(如资源释放)。 |
| float | 声明32位单精度浮点数类型变量(精度约6-7位有效数字)。 |
| for | 定义前测试循环(初始化、条件、迭代步骤集中声明)。 |
| goto | 保留关键字(未实际使用,原计划用于无条件跳转)。 |
| if | 定义条件判断(条件为真时执行对应代码块)。 |
| implements | 声明类实现一个或多个接口(需实现接口的所有抽象方法)。 |
| import | 导入其他包/模块中的类、接口(避免全限定名调用)。 |
| instanceof | 检查对象是否是某个类、接口或其子类的实例(返回布尔值)。 |
| int | 声明32位有符号整数类型变量(范围:-2³¹ ~ 2³¹-1)。 |
| interface | 声明接口(抽象方法和常量的集合,类可实现多个接口)。 |
| long | 声明64位有符号整数类型变量(范围:-2⁶³ ~ 2⁶³-1)。 |
| module | 声明一个模块(封装类和包,定义依赖与导出,Java 9+)。 |
| native | 声明本地方法(用C/C++等语言实现,由JVM调用)。 |
| new | 创建对象实例(调用构造方法)或数组(如new int[5])。 |
| non-sealed | 声明密封类的子类可被进一步继承(解除密封,Java 17+)。 |
| null | 保留字面量(表示对象引用为空,非关键字但需注意空指针异常)。 |
| opens | 模块系统(Java 9+)中声明当前模块开放的包(允许反射访问)。 |
| package | 声明类所属的包(组织代码,避免命名冲突)。 |
| permits | 声明密封类允许的直接子类(需与sealed配合使用,Java 17+)。 |
| private | 访问修饰符,声明成员(字段/方法)仅在当前类中可访问。 |
| protected | 访问修饰符,声明成员在当前类、子类及同包类中可访问。 |
| public | 访问修饰符,声明成员在任何位置均可访问(最宽松的权限)。 |
| provides | 模块系统(Java 9+)中声明当前模块提供的服务实现(如provides Service with Impl)。 |
| record | 声明不可变数据类(自动生成equals/hashCode/toString和字段访问方法,Java 16+)。 |
| requires | 模块系统(Java 9+)中声明当前模块依赖的其他模块(如requires com.example)。 |
| return | 结束方法执行,返回结果(void方法无返回值)。 |
| sealed | 声明密封类(限制可继承的子类,需用permits指定允许的子类,Java 17+)。 |
| short | 声明16位有符号整数类型变量(范围:-32768 ~ 32767)。 |
| static | 修饰成员(字段/方法/内部类)属于类本身,而非实例(通过类名直接访问)。 |
| strictfp | 限制浮点数计算精度(确保跨平台结果一致,多用于科学计算)。 |
| super | 引用父类的实例变量、方法或构造方法(区分子类与父类同名成员)。 |
| switch | 多分支条件判断(支持基本类型、枚举、字符串及Java 12+的表达式形式)。 |
| synchronized | 声明同步方法或代码块(保证多线程访问的互斥性,避免数据竞争)。 |
| this | 引用当前对象的实例变量、方法或构造方法(区分局部变量与成员变量)。 |
| throw | 手动抛出一个异常对象(如throw new IOException())。 |
| throws | 声明方法可能抛出的异常类型(调用者需处理或继续抛出)。 |
| transient | 声明实例变量不参与序列化(反序列化时会被忽略,用于敏感数据保护)。 |
| try | 定义可能抛出异常的代码块(配合catch/finally处理异常)。 |
| to | 模块系统(Java 9+)中限制导出包的目标模块(如exports pkg to moduleA)。 |
| uses | 模块系统(Java 9+)中声明当前模块使用的服务(如uses Service)。 |
| var | 声明局部变量(类型由初始化值推断,Java 10+,简化代码)。 |
| void | 声明方法无返回值(或作为void类型的占位符)。 |
| volatile | 声明变量在多线程中可见(禁止编译器优化,保证内存可见性)。 |
| while | 定义前测试循环(条件为真时重复执行循环体)。 |
| with | 模块系统(Java 9+)中声明服务实现的关联(如provides Service with Impl)。 |
| yield | 在switch表达式中返回值(终止当前分支并返回结果,Java 13+)。 |
- 保留字:
const、goto为历史保留字(未实际使用);null、true、false为字面量保留(非严格关键字)。 - 版本新增:模块相关关键字(
module/requires等)为Java 9+引入;var(Java 10)、yield(Java 13)、record(Java 16)、sealed/permits/non-sealed(Java 17)为近年主要新增特性。
2.类名、方法名、变量名都是标识符
3.名命规范:- 所有的标识符都应该以字母(A-Z 或者 a-z),美元符($)、或者下划线(_)开始
- 首字符之后可以是字母(A-Z 或者 a-z),美元符($)、下划线(_)或数字的任何字符组合
- 不能使用关键字作为变量名或方法名。(红色标注强调)
- 标识符是大小写敏感的EX:String A 与String a里A与a是不一样的标识符
- 合法标识符举例:age、$salary、_value、__1_value
- 非法标识符举例:123abc、-salary、#abc