Java中变量名的长度限制

时间:2012-01-08 23:44:01

标签: java compiler-construction

  

可能重复:
  Max name length of variable or method in Java

我正在阅读java文档,它说“变量的名称可以是任何合法的标识符 - 无限长度的Unicode字母和数字序列......”在c ++中,变量名长度大约为255个字符,具体取决于编译器,因此如何在java中处理,编译器在x个字符后截断变量名称,如果这是真的那么x是什么?

3 个答案:

答案 0 :(得分:6)

根据the class file format spec(根据第4.11节):

  

字段和方法名称,字段和方法描述符以及其他常量字符串值的长度由CONSTANT_Utf8_info结构(第4.4.7节)的16位无符号长度项限制为65535个字符。请注意,限制是编码中的字节数,而不是编码字符数。 UTF-8使用两个或三个字节对某些字符进行编码。因此,包含多字节字符的字符串受到进一步限制。

这也适用于局部变量,因为LocalVariableTable指向变量名的CONSTANT_Utf8_info值。

答案 1 :(得分:1)

鉴于java.lang.String有一个字段

private final int count;

指定其中的字符数,最大标识符长度不得超过

Integer.MAX_VALUE的

答案 2 :(得分:1)

在他们的正确思想中,任何人都不应该在极限的范围内。你达到了破坏目的的程度。您想要选择能够阐明您意图的名称,但这并不意味着变量名称的长度应与“尤利西斯”相媲美。这个限制更多地与良好的品味和可读性有关。