Mik*_*e G 3 java compiler-construction
可能重复:
Java中变量或方法的最大名称长度
我读Java文档,它说"一个变量名可以是任何合法的标识符 - Unicode编码的字母和数字的无限长序列..."C++中的变量名长度取决于编译器周围255个字符,所以这是怎么在java中处理的编译器会在x个字符后截断变量名,如果这是真的那么x是什么?
根据类文件格式规范(4.10节下的最后一点):
字段和方法名称,字段和方法描述符以及其他常量字符串值的长度由CONSTANT_Utf8_info结构(第4.4.7节)的16位无符号长度项限制为65535个字符.请注意,限制是编码中的字节数,而不是编码字符数.UTF-8使用两个或三个字节对某些字符进行编码.因此,包含多字节字符的字符串受到进一步限制.
这也适用于局部变量,因为LocalVariableTable指向变量名称的CONSTANT_Utf8_info值.