use*_*011 2 java variables exception
我很蠢,我知道,对不起......
我创建了这个问题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的问题,所以有人知道:谁的问题?
似乎这个问题至少被问过几次(" Java中变量或方法的最大名称长度 "," Java是否对类名长度有限制? ").
最好的答案似乎是,虽然Java语言规范没有对常量,类或变量名称进行限制,但Java虚拟机规范(特别是类文件格式)强制限制为65535个字符.请参阅JVM规范的4.10节,最后一个项目.
| 归档时间: |
|
| 查看次数: |
588 次 |
| 最近记录: |