黑马程序员技术交流社区

标题: byte数组最大定义范围 [打印本页]

作者: 王运科    时间: 2012-3-30 16:58
标题: byte数组最大定义范围
                                int len=0;
                byte[] byt=new byte[1024*1024];
                while((len=FileInputStream.read(byt))!=-1)
                {
                        FileOutputStream.write(byt,0,len);
                }
问问:byte[] 数组最大能定义多少,可不可以定义为 byte[] byt=new byte[1024*1024*1024*1024]?
作者: 姚伟涛    时间: 2012-3-30 17:03
数组允许的最大长度是2^31次方。但是,如果你在分配数组时,内存不够,也会出错。
作者: 黑马老兵    时间: 2012-3-30 17:23
int数据最大是2^31-1,最大长度肯定是就是int的最值了。
作者: 胡川    时间: 2012-3-30 18:22
在默认的vm arguments下,byte数组的最大长度是61858764,将近60M。

由于short的长度比byte大一倍,所以short数组的最大长度是30929382,是byte数组最大长度的一半,

以此类推,int数组最大长度是15464691,long数组最大长度是7732345
但是通过修改虚拟机的最大内存,java整型数组的最大长度可以很长,但到底有多长?(肯定比内存小)
作者: 应佳锋    时间: 2012-3-30 21:35
是根据 你JVM物理空间来的  别充满你JVM空间就可以了
作者: 强文何    时间: 2012-3-30 21:58
length最大应该是Integer.MAXVALUE,即2147483647。
作者: 黑马张平    时间: 2012-3-30 22:06
Integer.MAXVALUE,即2147483647.




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2