Java中的类/方法/变量名是否有最大长度限制?JLS似乎没有提到。我知道非常长的名称从代码可读性和可维护性的角度来看都是有问题的,但是只是出于好奇,是否存在限制(我猜测类名可能受文件系统最大文件名限制的限制)。
在Java中,类、方法和变量名的长度没有明确的最大限制,这取决于编译器和操作系统的限制。通常,编译器会允许相当长的名称,但是为了保持代码的可读性和可维护性,建议使用简洁而描述性强的名称。对于类名,确实可能受到操作系统最大文件名长度的限制,因此请注意此限制。Java中的类/方法/变量名是否有最大长度限制?JLS似乎没有提到。我知道非常长的名称从代码可读性和可维护性的角度来看都是有问题的,但是只是出于好奇,是否存在限制(我猜测类名可能受文件系统最大文件名限制的限制)。
在Java中,类、方法和变量名的长度没有明确的最大限制,这取决于编译器和操作系统的限制。通常,编译器会允许相当长的名称,但是为了保持代码的可读性和可维护性,建议使用简洁而描述性强的名称。对于类名,确实可能受到操作系统最大文件名长度的限制,因此请注意此限制。如果我没记错的话,限制不在语言本身,而是在类文件格式中,该格式将名称限制为64k,因此对于所有实际意图来说,标识符长度并不是问题。具体来说,这是池中常量字符串的定义,似乎暗示最大长度为16位:
CONSTANT_Utf8_info {
u1 tag;
u2 length;
u1 bytes[length];
}
对于文件系统而言,类名可能更具问题,我同意这点,我不确定目前支持哪些。
JLS: 标识符是由Java字母和Java数字组成的无限长度序列,其中第一个必须是Java字母。
也发现了类似的问题(尽管在我的初始搜索中没有出现,或者当我输入问题标题时没有出现,这很奇怪):方法名最大长度
Main.java:1: UTF8代表字符串"aaaaaaaaaaaaaaaaaaaa..."对于常量池来说太长了