你能分清Java的关键字和标识符吗?
Posted 杨 戬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了你能分清Java的关键字和标识符吗?相关的知识,希望对你有一定的参考价值。
文章目录
Java标识符和关键字
概念
标识符
Java 中标识符是为方法、变量或其他用户定义项所定义的名称。标识符可以有一个或多个字符。
在 Java 语言中,标识符的构成规则如下:
- 标识符由数字(
0~9
)和字母(A~Z
和a~z
)、美元符号($
)、下划线(_
)以及 Unicode 字符集中符号大于 0xC0 的所有符号组合构成(各符号之间没有空格)。 - 标识符的第一个符号为字母、下划线和美元符号,后面可以是任何字母、数字、美元符号或下划线。
另外,因为 Java 区分大小写,因此 myvar
和 MyVar
是两个不同的标识符。
提示:标识符命名时,切记不能以数字开头,也不能使用任何 Java 关键字作为标识符,而且不能赋予标识符任何标准的方法名。
标识符分为两类,分别为关键字和用户自定义标识符。
- 关键字是有特殊含义的标识符,如
true
、false
表示逻辑的真假。 - 用户自定义标识符是由用户按标识符构成规则生成的非保留字的标识符,如 abc 就是一个标识符。
提示:使用标识符时一定要注意,或者使用关键字,或者使用自定义的非关键字标识符。此外,标识符可以包含关键字,但不能与关键字重名。
例如以下合法与不合法标识符。
- 合法标识符:
date
、$2011
、_date
、D_$date
等。 - 不合法的标识符:
123.com
、2com
、for
、if
等。
总结:标识符用来命名常量、变量、类和类的对象等。
关键字
关键字(或者保留字)是对编译器有特殊意义的固定单词,不能在程序中做其他目的使用。关键字具有专门的意义和用途,和自定义的标识符不同,不能当作一般的标识符来使用。
例如,我们编写的实例 Main.java 中的 class 就是一个关键字,它用来声明一个类,其类名称为 Main。public 也是关键字,它用来表示公共类。另外,static 和 void 也是关键字。
public class Main
public void mm()
Java 的关键字对 Java 编译器有特殊的意义,它们用来表示一种数据类型,或者表示程序的结构等。
另外:保留字是为 Java 预留的关键字,它们虽然现在没有作为关键字,但在以后的升级版本中有可能作为关键字。
保留字有:true、false、null、goto、const。
例如下面是Java当中的关键字:
分类 | 关键字 | ||||||
---|---|---|---|---|---|---|---|
访问控制 | private | protected | public | ||||
类,方法和变量修饰符 | abstract | class | extends | final | implements | interface | native |
new | static | strictfp | synchronized | transient | volatile | enum | |
程序控制 | break | continue | return | do | while | if | else |
for | instanceof | switch | case | default | assert | ||
错误处理 | try | catch | throw | throws | finally | ||
包相关 | import | package | |||||
基本类型 | boolean | byte | char | double | float | int | long |
short | |||||||
变量引用 | super | this | void | ||||
保留字 | goto | const |
虽然 true
, false
, 和 null
看起来像关键字但实际上他们是字面值,同时你也不可以作为标识符来使用,被用做保留字。
另外:
default
这个关键字很特殊,既属于程序控制,也属于类,方法和变量修饰符,还属于访问控制。
- 在程序控制中,当在
switch
中匹配不到任何情况时,可以使用default
来编写默认匹配的情况。- 在类,方法和变量修饰符中,从 JDK8 开始引入了默认方法,可以使用
default
关键字来定义一个方法的默认实现。- 在访问控制中,如果一个方法前没有任何修饰符,则默认会有一个修饰符
default
,但是这个修饰符加上了就会报错。
也可以查看官方文档:https://docs.oracle.com/javase/tutorial/java/nutsandbolts/_keywords.html
区别
在我们编写程序的时候,需要大量地为程序、类、变量、方法等取名字,这些就是 标识符 。简单来说, 标识符就是一个名字 。
有一些标识符,Java 语言已经赋予了其特殊的含义,只能用于特定的地方,这些特殊的标识符就是 关键字 。简单来说,关键字是被赋予特殊含义的标识符 。
标识符是我们定义的,关键字是系统为我们定义的。
比如,在我们的日常生活中,如果我们想要开一家店,则要给这个店起一个名字,起的这个“名字”就叫标识符。但是我们店的名字不能叫“烧烤店”,因为“烧烤店”这个名字已经被赋予了特殊的含义,而“烧烤店”就是我们日常生活中的关键字,我们可以起名为“刘波儿烧烤店”。
那么映射到编程语言里就是:
烧烤店 刘波儿烧烤店 = new 烧烤店(店铺、肉、菜、员工......);
刘波儿烧烤店.营业();
刘波儿烧烤店.烤串();
刘波儿烧烤店.收摊();
以上是关于你能分清Java的关键字和标识符吗?的主要内容,如果未能解决你的问题,请参考以下文章
C++20 新增两个 const 相关的关键字后,你能分清楚这四个关键字吗?
你能分清楚 Authentication 和 Authorization 吗?