A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王运科 中级黑马   /  2012-3-30 16:58  /  21652 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

                                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]?

6 个回复

倒序浏览
数组允许的最大长度是2^31次方。但是,如果你在分配数组时,内存不够,也会出错。
回复 使用道具 举报
int数据最大是2^31-1,最大长度肯定是就是int的最值了。
回复 使用道具 举报
在默认的vm arguments下,byte数组的最大长度是61858764,将近60M。

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

以此类推,int数组最大长度是15464691,long数组最大长度是7732345
但是通过修改虚拟机的最大内存,java整型数组的最大长度可以很长,但到底有多长?(肯定比内存小)
回复 使用道具 举报
是根据 你JVM物理空间来的  别充满你JVM空间就可以了
回复 使用道具 举报
length最大应该是Integer.MAXVALUE,即2147483647。
回复 使用道具 举报
Integer.MAXVALUE,即2147483647.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马