Java的.实例变量长度

use*_*011 2 java variables exception

可能重复:
Java是否对类名长度有限制?
Java Java中变量或方法的最大名称长度.变量
名称长度.

我很蠢,我知道,对不起......

我创建了这个问题Java.Variable名称长度,但这里非常糟糕的例子...所以,我尝试创建新的问题,我有这个类:

class Test
{
int i=10;

public static void main(String args[])
{
System.out.println(new Test());
}}
Run Code Online (Sandbox Code Playgroud)

其中变量名称不是'i'而是'iiiiiii ....',长度为65535个字符(iiiiiiiiii ...)

.class文件与.java文件的大小相同.编译 - 成功.

但是,当我> 65535chars - Exception: UTF8 representation for string "iiiiiiiiiiiiiiiiiiii..." is too long for the constant pool

答对了!

我们可以得出什么结论?

无限长度 - 不是100%正确.

但我发现一些信息,它的问题不是java语言 - 它有一些classfile的问题,所以有人知道:谁的问题?

Rob*_*rtB 7

似乎这个问题至少被问过几次(" Java中变量或方法的最大名称长度 "," Java是否对类名长度有限制? ").

最好的答案似乎是,虽然Java语言规范没有对常量,类或变量名称进行限制,但Java虚拟机规范(特别是类文件格式)强制限制为65535个字符.请参阅JVM规范的4.10节,最后一个项目.