这个问题出现在 Spring 类中,它有一些相当长的类名。类名长度的语言有限制吗?
问问题
26447 次
4 回答
51
Java 语言规范声明标识符的长度是无限的。
但实际上,文件系统会限制生成的文件名的长度。
于 2009-06-24T15:18:47.153 回答
33
我相信有 65535 个字符。来自 Java 虚拟机规范:
CONSTANT_Utf8_info 结构(第 4.4.7 节)的 16 位无符号长度项将字段和方法名称、字段和方法描述符以及其他常量字符串值的 长度限制为 65535个字符。请注意,限制是编码中的字节数,而不是编码字符数。UTF-8 使用两个或三个字节对某些字符进行编码。因此,包含多字节字符的字符串进一步受到限制。
这里:
https://docs.oracle.com/javase/specs/jvms/se6/html/ClassFile.doc.html#88659
于 2009-06-24T15:21:52.483 回答
3
在 JDK 1.5 中,Windows XP 上类名的实际限制为 255——更长的名称会导致文件系统出错。这是全名(目录+包+类)。
我没有在 Vista 或 Windows 7 上尝试过 JDK 1.6,希望 Sun 将其修复为 NTFS 限制为 8000 左右。
于 2009-10-29T07:24:27.260 回答
0
不,Java 对类名没有任何限制。但是,如果您与其他系统(例如 JNI)进行交互,最好还是安全一点。
于 2009-06-24T15:20:17.900 回答