在Java语言规范6.2 Link
中以下是代码示例:
class Test {
public static void main(String[] args) {
Class c = System.out.getClass();
System.out.println(c.toString().length() +
args[0].length() + args.length);
}
}
它说:
标识符Test,main和第一次出现的args和c不是名称。相反,它们在声明中用于指定声明的实体的名称。名称String,Class,System.out.getClass,System.out.println,c.toString,args和args.length出现在示例中。
但Class和String这样的名字也是标识符吗?什么是标识符?
答案 0 :(得分:1)
标识符是一种令牌。来自lexical structure of Java:
的规范3.8。标识符
标识符是Java字母和Java数字的无限长度序列,第一个必须是Java字母。
Identifier: IdentifierChars but not a Keyword or BooleanLiteral or NullLiteral IdentifierChars: JavaLetter IdentifierChars JavaLetterOrDigit JavaLetter: any Unicode character that is a Java letter (see below) JavaLetterOrDigit: any Unicode character that is a Java letter-or-digit (see below)
“Java letter”是该方法的字符 Character.isJavaIdentifierStart(int)返回true。
“Java letter-or-digit”是该方法的字符 Character.isJavaIdentifierPart(int)返回true。
“Java字母”包括大写和小写ASCII拉丁字母 A-Z(\ u0041- \ u005a)和a-z(\ u0061- \ u007a),以及历史 原因,ASCII下划线(_,或\ u005f)和美元符号($,或 \ u0024)。 $字符只能用于机械生成 源代码,或者很少访问遗留的预先存在的名称 系统
“Java数字”包括ASCII数字0-9(\ u0030- \ u0039)。
可以从整个Unicode字符集中绘制字母和数字, 它支持当今世界上使用的大多数编写脚本, 包括中文,日文和韩文的大套。这个 允许程序员在他们的程序中使用标识符 用他们的母语写成。
标识符不能具有相同的拼写(Unicode字符 sequence)作为关键字(§3.9),布尔文字(§3.10.3)或null 文字(§3.10.7),或发生编译时错误。
答案 1 :(得分:0)
这可能会回答你的第二个问题:
http://www.cafeaulait.org/course/week2/08.html
标识符是变量,方法,类,包和名称 接口。与文字不同,它们本身并不是事物本身 引用它们的方式。
答案 2 :(得分:0)
标识符是用户定义的符号。
它允许编译器区分对符号表中相同类型的对象的绑定。