我在班上使用这段代码。但它显示错误。为什么我们不能在String数组声明中赋值长?它显示可能的损失转换。
long n=10000000;
String ar[]=new String[n];
答案 0 :(得分:1)
这是正确的声明。使用int
代替long
。 Java JVM不允许在long
数据类型的大小范围内创建数组,因此它在编译时产生警告(错误)。
int n=10000000;
String ar[]=new String[n];
我尝试了以下代码:
public class Array {
public static void main(String args[]) {
int a[] = new int[Integer.MAX_VALUE];
}
}
得到以下例外:Requested array size exceeds VM limit
Exception in thread "main" java.lang.OutOfMemoryError: Requested array size exceeds VM limit
at gen2dArray.main(Array.java:7)
答案 1 :(得分:1)
这个问题可能与此相同
它与内存分配有关。 但我们可以使用多维数组来处理这个问题。
在字符串的最大整数数组上将占用大量内存。
如果需要使用大量数组,请尝试使用HashMap。