『壹』 java数组的长度到底能有多大
使用eclipse默认的vm arguments,运行以下代码:
public static void main(String[] args) {
byte[] array=new byte[61858764];
// short[] shortArray=new short[30929382];
// int[] intArray=new int[15464691];
// long[] longArray=new long[7732345];
}
成功,没有报错,可知在eclipse默认的vm arguments下,byte数组的最大长度是61858764,将近。
由于short的长度比byte大一倍,所以short数组的最大长度是30929382,是byte数组最大长度的一半,
以此类推,int数组最大长度是15464691,long数组最大长度是7732345
我以为这就是最终结果,后来突然想起修改虚拟机的最大内存,也是这个结果吗?
我把eclipse的vm arguments设置修改为:-Xms256M -Xmx768M
再次测试代码,发现byte数组的最大长度可以更长,
通过Windows任务管理器可知,运行代码的javaw.exe进程占用的内存也更大(废话,呵呵)
到此为止,应该可以得出结论,通过修改虚拟机的最大内存,java整型数组的最大长度可以很长,但到底有多长?(肯定比内存小)
我试过定义一个byte数组的长度为618587640,将近600M,没有报错,更长的数组似乎没有意义,我也没有测试。
选自:http://blog.csdn.net/mayumin/article/details/5904974
『贰』 java中已经定义好的数组怎样扩大长度
没啥办法只能新建一个更大的数组,看需求如果可以用list,只能用数组,参数ArrayList的源码
oldData = Arrays.Of(oldData , newLength);
『叁』 java如何增加数组长度
java中的数组是定长的来,无法动自态增加长度。如果要扩充数组,只能通过重新定义数组,把旧数组内容拷贝到新数组中。
例如:
1、定义一个旧数组
js">int[]arrOld=newint[2];//旧数组定义
2、要扩充数组长度到3,需要重新定义数组
int[]arrNew=newint[3];//定义新数组
for(inti=0;i<arrOld.length;i++){
arrNew[i]=arrOld[i];//把旧数组中的元素拷贝到新数组中
}
『肆』 JAVA怎样获取数组长度
1、打开Eclipse,新建项目,在项目src目录新建一个类,为了更好操作数组,Java为数组提供专length属性,用属来获取数组长度,语法格式如下。
『伍』 java中已经定义好的数组怎样扩大长度
固定的了,不能扩,
只能重新定义一个需要的长度的数组,再把原来的数据库拷贝进去
『陆』 java怎样定义可变长数组
数组在定义旅启陵中,必拆戚须明确长度。所以变长不可能。
用ArrayList 等实现List接口的类,变相实现变长数组旁散。
和数组之间转换也比较方便。