Java中variables或方法的最大名称长度

Java中是否有类/方法/variables名称的最大长度? JLS似乎没有提到这一点。 我知道从代码可读性和可维护性angular度来说,很长的名字是有问题的,但出于好奇,有一个限制(我猜可能是文件系统的最大文件名限制类名的限制)。

如果我没有弄错,限制不是在语言本身,而是在类名文件格式,这限制名称为64K,所以对于所有的实际意图和目的标识符长度不是一个问题。 具体来说,这是在池中定义一个常量string,这似乎意味着最大长度是16位:

CONSTANT_Utf8_info { u1 tag; u2 length; u1 bytes[length]; } 

对于文件系统,类名可能更多,我同意,我不确定当前支持什么。

对不起,实际上在JLS中find了答案: http : //java.sun.com/docs/books/jls/third_edition/html/lexical.html#40625似乎标识符名称的长度是无限的。

还发现类似的问题(尽pipe它没有出现在我的初始search,或者当我input问题标题是奇怪的): 最大方法名称长度

如果你超过了虚拟机对方法名称的限制,那么你会得到一个编译器错误(至less在我使用的是javac版本时):

Main.java:1:string“aaaaaaaaaaaaaaaaaaaa …”的UTF8表示对于常量池太长