java 。实例变量长度

标签 java exception variables

<分区>

Possible Duplicates:
Does Java have a limit on the class name length?
Max name length of variable or method in Java
Java.Variable name length.

我笨,我知道,对不起...

我创建了这个问题 Java.Variable name length , 但这里是非常糟糕的例子...... 所以,我尝试提出新问题, 我有这门课:

class Test
{
int i=10;

public static void main(String args[])
{
System.out.println(new Test());
}}

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

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

但是,当 i>65535chars - 异常:字符串“iiiiiiiiiiiiiiiiii...”的 UTF8 表示对于常量池来说太长

宾果!

我们可以得出什么结论?

无限长度 - 并非 100% 正确。

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

最佳答案

这个问题似乎至少被问过几次(“ Max name length of variable or method in Java ”、“ Does Java have a limit on the class name length? ”)。

最好的答案似乎是,虽然 Java 语言规范没有对常量、类或变量名称施加限制,但 Java 虚拟机规范(特别是类文件格式)规定了 65535 个字符的限制。参见 section 4.10 JVM 规范的最后一个项目符号。

关于 java 。实例变量长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4360241/

相关文章:

java - Windows Bat 文件无法使用德语元音变音

c++ - Catch(...) with unknown object - 我如何识别抛出的是什么?

python - 如何在 python 中的线程之间传递异常

vba - 在 VBA 的 Excel 公式中使用日期变量

java - 变量的地址在执行过程中可以改变吗?

java - 'clientRegistrationRepository' 中的 Bean 方法 'OAuth2ClientRegistrationRepositoryConfiguration' 未加载

java - 从对象的 ArrayList 中获取具有最低值的属性

java - 如何在 Clojure 中使用 java.util.stream.Stream?

java - 为什么在这种情况下需要catch IOException

image - Matlab毒药和数字