标识符另类应用
java语言中的标识符
1) 标识符由字母、数字、下划线“_”、美元符号“$”、人民币符号“¥”(可以
通过ALT + 0165打出)组成,并且首字母不能是数字。
2) 不能把java关键字和保留字作为标识符。
3) 标识符没有长度限制。
4) 标识符对大小写敏感。
?
除了注释,标识符,字符与字符串文字的内容,Java程序中的所有输入元素都只由
ASCII字符形式.ASCII是美国信息交换标准代码.Unicode字符的前128个字符编码是
ASCII字符.
?
标识符: 是不限长度的Unicode字母和数字,以及若干符号组成的序列,序列的第一个
字符必须是非数字.字母和数字可以从整个Unicode字符集中选择,Unicode字符集支
持当今世界上使用的绝大多数书写字母,这允许Java程序员在他们的程序中使用以他
们的母语编写的标识符.
?
测试程序:
?
?
?
由C语言留下的标识符书写定势,容易让人以为标识符不可以含有中文字符.Unicode字符包含中文字符.最期Unicode字符都用二个字节进行编码,所以支持用二个字节
编码的中文字符以及标识符.
(扩展知识: 中文字符在Java语言中可以存储在char类型变量中,但是在C语言中则只能存储在char数组或string变量中.)
?
输出结果:
?参考资料:
1 楼 sd6733531 2011-04-28 新一代的语言都以UTF8为标准。
百度百科 词条:标识符
Java虚拟机规范
但是奇怪的是Java对于UTF8的处理有奇妙的地方
假设i=/u0001 n=/u0002 t=/u0003
那么
/u0001/u0002/u0002 a=1;
是等价于 int a=1的 2 楼 yeshaoting 2011-04-28 sd6733531 写道新一代的语言都以UTF8为标准。
但是奇怪的是Java对于UTF8的处理有奇妙的地方
假设i=/u0001 n=/u0002 t=/u0003
那么
/u0001/u0002/u0002 a=1;
是等价于 int a=1的
除了注释,标识符,字符与字符串文字的内容,Java程序中的所有关键字都是ASCII字符形式.
Java语言中,关键字内部是用ASCII编码的,并非UTF-8.
所以我觉得/u0001/u0002/u0002 a=1; 并不等价于 int a=1