Java之关于标识符

来源:互联网 发布:图片无缝拼接软件 编辑:程序博客网 时间:2024/06/04 00:26

最近看到Java标识符这一块的时候,对其又有了更加深入的了解,以下是我的一些总结:

Java语言要求类名、方法名、变量名、常量名等都必须是合法的标识符。我们通常所说的标识符第一个字符必须是字母、下划线或者$,后面的字符可以是上面的字符或者是数字,当然前提是后面还有字符。通过查找资料才知道,原来这里的字母并不单纯指我们熟悉的26个大小写字母,而是指Unicode字符集。

于是标识符的定义又有了如下规则:1.首字符所对应的代码点必须使得Character类的isJavaIdentifierStart方法返回值为true,如果有后续字符,那么后续字符所对应的代码点必须使得Character类的isJavaIdentifierPart方法返回值为true;2.标识符不能和Java中的关键字和保留字相同;3.标识符不能和Java中预定义的字面常量相同;4.标识符长度必须在系统支持范围内。

另外需要注意的是:1.Java将goto和const定义为保留字,基本没有语法应用,但是不能使用它们作为标识符;

2.系统定义的true,false,null并不是关键字,而是字面常量,仍然不允许作为标识符使用;

3.$可作为标识符使用,但是我们应该减少对他的使用。因为$通常在编译器生成的标识符名称中使用。假如一个类为A,在内部声明成员类B,编译后就会产生A.class和A$B.class,如果我先定义一个类为A$B,然后定义一个类为A,并在A内部声明成员类B,编译之后就会生成三个class文件:A$B.class,A.class,A$B.class,因为产生两个A$B.class,故会报编译错误;

4.在Java语言规范中,标识符的长度是任意的;Java虚拟机规范中,标识符是有长度限制的,最大长度为65535,但是这个最大长度仅限于除空字符null以外的字符;

5.标识符区分大小写。


0 0
原创粉丝点击