waq*_*qas 4 java static initialization
嗨,我正在尝试初始化长度为10,100,1000,10000的4个字符串数组,这些数组就像
array1={"0","1",..."9"}
array2={"00","01",..."99"}
array3={"000","001",..."999"}
array4={"0000","0001",..."9999"}
Run Code Online (Sandbox Code Playgroud)
但我得到的错误静态初始化程序的代码超过65535字节限制
如何初始化我的数组?
另请注意,从文件加载它不是我的选项:(
使用for循环.例如:
for (int i = 0; i <= 9; i++)
array1[i] = String.valueOf(i);
Run Code Online (Sandbox Code Playgroud)
通过从常量池中加载每个值并将其分配给相应的数组索引,在java字节码中初始化常量数组.每个数组元素需要几个字节的代码.jvm方法的大小限制为65535字节,因为它的长度使用16位数存储在类文件中.
如果在循环中无法轻松计算值,则可以将初始化分解为单独的静态函数:
static {
array1 = getValuesForArray1();
...
}
private static String[] getValuesForArray1() {
...
}
Run Code Online (Sandbox Code Playgroud)
如果初始化值存在模式,则其当然更好地计算动态值.
| 归档时间: |
|
| 查看次数: |
9109 次 |
| 最近记录: |