我在《OCJP for Java6》一书中读到了断言部分。我到达了这个部分,它让我概述了如果将“assert”一词用作关键字或标识符,编译器将如何反应。
Keyword
和 identifier
有什么区别?谁能给我一个简单的解释,并另外提供一个或多个示例?
术语“关键字”和“标识符”不是 Java 特有的。
关键字是Java关键字列表中的保留字,为编译器提供指令。由于关键字是保留的,程序员不能将它们用于变量或方法名称。
示例:
final
class
this
synchronized
标识符是变量、方法、类、包和接口的名称。它们必须由字母、数字、下划线 _ 和美元符号 $ 组成。标识符只能以字母、下划线或美元符号开头。
示例:
int index;
String name;
index
和 name
是此处的有效标识符。 int
是关键字。
关键字不能用作标识符。
标识符是变量的名称。例如在
int a = 3;
a
是标识符。另一方面,关键字是保留的(即您不能用关键字命名变量),是在语言中具有特定含义的预定义单词。例如在
if (a == 3)
System.out.println("Hello World");
if
是一个关键字。它有特定的功能,不能用作变量名。此外,用于声明基本类型的单词也都是关键字,例如int
、char
、long
、boolean
等。您可以在此处查看 Java 关键字的完整列表
关键字是保留字,例如
new,static,public,if,else,..
标识符可以是任何变量的名称。
int age = 26;
这里的"age"
是标识符,而int
是保留字。
以下示例无法编译:
String static = "hello";
int public = 4;
你不能这样做,因为
"static"
和 "public"
是 keywords
,在这种情况下被用作 identifiers
,这是不允许的。
我假设标识符是你自己的(函数名称,变量名称,...);关键字是“class”或“assert”或“while”——换句话说,语言定义的标识符
标识符用于命名 Java 程序的元素,例如类、接口、变量、方法、构造函数和参数。 有效名称以 Unicode 字母、下划线字符 (_) 或美元符号 ($) 开头。 Unicode 字母是英文字母 (a-z) 或 (A-Z) 或非英语语言的字母。 标识符的第二个和其余字母可以是 Unicode 字母、下划线、美元符号或数字 (0-9)。 美元符号字符由编译器内部标识符使用,应避免使用。
https://www.javadeploy.com/java-certification/module2/identifiers-keywords.jsp