JavaSE - 关键字与标识符
本节学习Java中的关键字与标识符。
1. 关键字
Java关键字 (Keywords)是编程语言里事先定义的,有特别意义的标识符,还有特别意义的变量。Java的关键字对Java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等,关键字不能用作变量名、方法名、类名、包名和参数。
下面列出了Java关键字,这些保留字不能用于常量,变量和任何标识符的名称:
类别 | 关键字 | 说明 |
---|---|---|
访问控制 | private | 私有的 |
protected | 受保护的 | |
public | 公共的 | |
default | 默认 | |
类、方法和变量修饰符 | abstract | 声明抽象 |
class | 类 | |
enum | 枚举 | |
extends | 继承,扩充 | |
final | 最终的,不可改变的,不可继承的 | |
implements | 实现(接口) | |
interface | 接口 | |
native | 本地的,原生方法(非Java实现) | |
new | 创建(对象) | |
static | 静态 | |
strictfp | 用于浮点数的精确化 | |
synchronized | (线程)同步,(线程)安全的 | |
transient | 用于防止非静态数据序列化 | |
volatile | 用于保持内存可见性和防止指令重排序 | |
流程控制 | break | 跳出循环以及switch |
case | 定义一个值供switch 选择 | |
continue | 跳出本次循环,直接进入下次循环 | |
do | 用于do-while循环体 | |
else | 否则 | |
for | 用于for循环 | |
if | 如果 | |
instanceof | 用于测试一个对象是否为一个类的实例 | |
return | 返回值,结束方法运行 | |
switch | 根据值选择case 执行 | |
while | 用于while循环和do-while循环 | |
异常处理 | assert | 断言表达式是否为真 |
catch | 捕获异常,用于try-catch-finally异常处理块 | |
finally | 无论是否捕获到异常都执行,用于try-catch-finally异常处理块 | |
throw | 抛出异常 | |
throws | 用于方法中声明一个可能会抛出的异常 | |
try | 尝试执行代码块,如果发生异常会被catch 代码块捕获异常并处理,用于try-catch-finally异常处理块 | |
包相关 | import | 导入,引入 |
package | 包 | |
基本类型 | boolean | 布尔类型 |
byte | 字节型 | |
char | 字符型 | |
double | 双精度浮点型 | |
float | 单精度浮点型 | |
int | 整型 | |
long | 长整型 | |
short | 短整型 | |
void | 空型,无类型,(方法)无返回值 | |
变量引用 | super | 父类,超类 |
this | 本类 | |
字面量 | false | 假,错误 |
null | 空值,不存在 | |
true | 真,正确 | |
保留字(Java定义的目前没有使用但可能以后使用的关键字) | goto | 是关键字,但不能使用 |
const | 是关键字,但不能使用 |
- 关键字全为小写字母组成的单词;
- 作为关键字的单词不可单独作为标识符使用;标识符允许包含作为关键字的单词。
- 保留字(reserved words)是现有Java版本定义的还没有使用的关键字,未来的Java版本可能会使用这些关键字,所以保留字也不可单独作为标识符使用。
2. 标识符
Java对各种变量、方法和类等要素命名时使用的字符序列被称为标识符;
凡是可以自己起名字的地方都叫标识符。
合法标识符定义规则:
- 由26个英文字母(区分大小写),阿拉伯数字0-9,下划线(_)或美元符号($)组成;
- 标识符不可以用阿拉伯数字开头;
- 不可以使用单独的关键字或保留字作为标识符,但能标识符可以包含关键字或保留字;
- 标识符严格区分大小写,长度无限制;
- 标识符不能含有空格。
编程规范:
- 标识符尽量使用易于理解的单词,不要定义过长的标识符(虽然长度无限制);
- 标识符最好使用驼峰命名法(CamelCase):
- 类名和接口名:所有单词的首字母大写(如
Person
,WelcomeMessage
); - 方法名和变量名:从第二个单词开始每个单词的首字母大写(如
age
,fruitType
)。
- 类名和接口名:所有单词的首字母大写(如
- 常量名所有字母均大写,单词之间使用下划线隔开(如
TEXT
,HELLO_MESSAGE
); - 包名命名规范:
- 包名命名的一般规则:
<域名>.<公司名或个人名>.<项目名或工程名>.<模块名>...
(如com.sun.net.httpserver.HttpContext
); - 域名:如
org
,com
,net
等,还有一些特殊的域名:indi
:个体项目,指个人发起,但非自己独自完成的项目,可公开或私有项目,版权主要属于发起者;pers
:个人项目,指个人发起,独自完成,可分享的项目,版权主要属于个人;priv
:私有项目,指个人发起,独自完成,非公开的私人使用的项目,版权属于个人;onem
:与indi
相同,推荐使用indi
;team
:团队项目,指由团队发起,并由该团队开发的项目,版权属于该团队所有。
- 项目名或工程名,模块名及其之后的包名统一为小写字母,单词紧挨。
- 包名命名的一般规则:
- Java采用unicode字符集,因此标识符也可以使用汉字,但不建议使用。