Java - 标识符
来源:互联网 发布:网络教育会计要考什么 编辑:程序博客网 时间:2024/04/28 03:15
Java 标识符的定义规则:
1. 标识符的首字符所对应的代码点必须使得Character类的isJavaIdentifierStart方法返回值为true,后续字符所对应的代码点必须使得Character类的isJavaIdentifierPart返回值为true。(随着JDK版本的增加符合的字符数目也不断增加着)
2. 标识符不能与Java关键字相同。
3. 标识符不能与Java中预定义的字面常量名称相同(true, false, null)。
4. 标识符的长度必须在系统所支持的范围内(这点是Java虚拟机所要求的)。
public static void main(String args[]) {int start = 0;int part = 0;for (int i = 0x0000; i <= 0x10ffff; i++) {if (Character.isJavaIdentifierStart(i))start++;if (Character.isJavaIdentifierPart(i))part++;}System.out.println("Unicode字符集个数:" + (0x10ffff+1));System.out.println("可作为标识符首字符的字符个数:" + start);System.out.println("可作为标识符一部分的字符个数:" + part);System.out.println("二者之差:" + (part - start));}输出:
Unicode字符集个数:1114112
可作为标识符首字符的字符个数:101296
可作为标识符一部分的字符个数:103584
二者之差:2288
注意:
1. 由上规则可以看出不符合标识符首字符规则的不仅是0-9十个数字。
2. 尽量避免$作为标识符的使用,因为$通常在编译器生成的标识符名称中使用,可能会起到冲突。因为$在源文件(.java)编译成字节码(.class)后会成为顶层类型与嵌套类型之间的连接符。例如:如果存在一个顶层类A,在其内声明一个类B,那么编译之后就会产生两个class文件,分别为A.class和A$B.class。所以如果文件中还存在另外一个顶层类A$B,那么编译之后生成的A$B.class文件就会与A的成员类冲突。
3. Java语言规范中,标识符的长度是任意的。但是在java 虚拟机规范中,标识符是有长度限制的。在class文件中,代表标识符的常量字符串在CONSTANT_Utf8_info表中,而该表使用两个字节(length)来表示字符串的长度,length是无符号类型,所以最大长度是2 ^16 – 1,即65535。但是这个最大长度仅限于除了空字符以外的ASCII字符,如果超出这个范围,最大长度将会减少。
- Java标识符
- JAVA标识符
- Java 标识符
- java标识符
- java标识符
- Java - 标识符
- java标识符
- Java 标识符
- JAVA标识符
- java标识符
- Java标识符
- java标识符
- Java标识符
- Java标识符
- Java 标识符
- java标识符
- Java标识符
- Java-标识符
- hdu 4893 Wow! Such Sequence! (线段树+ 心得)
- HTTP工作原理
- 利用ISCSI存储技术构建IP存储网络
- Merge Sorted Array
- Oracle创建表空间、用户级授权
- Java - 标识符
- Android 的Recovery机制
- 使用boost库解析xml配置文件
- Git分支管理策略
- PostgreSQL-关系、CRUD和联接
- 获得当前手机号码
- 深入了解View实现原理以及自定义View详解
- 黑马程序员_异常
- debian系统安装ntp网络时间服务