为什么Java中的数组仅限于" int"大小?

时间:2014-06-25 04:32:10

标签: java arrays

例如,我收到错误"无法从long转换为int"在尝试跟随时

long size = 32;
int a[] = new int[size];

Java将数组大小限制为int,这限制了我创建最多约20亿个元素。

为什么我们有此限制?

2 个答案:

答案 0 :(得分:1)

每个数组都有length,并且在JLS-10.7中指定它是int

  

公共最终字段长度,包含数组的组件数。长度可以是正数或零。

public final int length = X ;

答案 1 :(得分:1)

根据Java语言规范15.10

数组创建表达式中的维度表达式必须在编译时可转换为int类型。类型long在编译时不能转换为int,因此会导致编译错误。