Java数组的长度到底能有多大

Python011

Java数组的长度到底能有多大,第1张

菜鸟一般会问这样的问题, 数组的长度能有多大, 理论上数组的长度为int类型, 最大为Integer.MAX_VALUE =2147483647 16进制 [0x7fffffff]

如果声明一个int类型的数组: int[] ints = new int[Integer.MAX_VALUE]; 自己计算一下电脑得开多少内存给jvm

2147483647 / (1024*1024*1024) = 1.99999999GB 差不多2个G内存, jvm 100%会报oom, 当然服务器的内存可能设置比较大, 但是你有必要开这么大内存吗? 懂了没?

byte[]

phone

=new

byte[81]

//建立一个byte类型的数组,长度为81

phone[i]!=0中phone[i]!

//数组的第i的位置不等0

如:

byte[]

phone

=new

byte[81]

//建立一个byte类型的数组,长度为81

phone[1]!=0中phone[1]!

//数组第二个取值不等于0

同时给楼主举个例子:

public

class

StudyArrary

{

/**

*

@param

args

*/

public

static

void

main(String[]

args)

{

//

TODO

Auto-generated

method

stub

byte[]

phone

=new

byte[81]

//建立一个byte类型的数组,长度为81

for(int

a

=

0

a

<

81

a++)

phone[a]=(byte)a

//数组的第i的位置不等0

for(int

i

=

0

i

<

81

i++){

if

(phone[i]!=0)

{

System.out.println("phone["+i+"]不等于0"+",phone"+i+"是"+phone[i])

}

else

System.out.println("phone["+i+"]等于0"+",phone"+i+"是"+phone[i])

}

}

}