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

Python010

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

其实没有这种说法, 数组长度是 int类型 取值是 20多亿吧

而真正的长度取决于你的JVM大小

你不可能创建20亿长度的数组

因为这里已经占用好几个G的内存了,你电脑也没有这么大的内存

java 中数组的最大长度是多少呢?看一下它的length属性就可以了。length属性是32位的有符号整数,它的最大值是2的31次幂,就是2G。为何有这个限制呢?为什么length的属性不是long型呢?我们假设一下,如果它是long型的,那么它的最大长度是2的63次幂。内存永远也不会有那么大吧。即使是字节数组长度是int的,最大长都达到2GB.

由此想到了String,这个家伙底层也是基于数组的,是一个字符数组。字符是16位的基本类型,一个String的最大长度是多少呢?就是字符数组的最大长度也是2G,占用内存是4GB。

从JVM的角度来解释:创建数组的字节码是anewarray和newarray,操作数栈的字宽是32位,而这两个字节码的参数都是一个字长,所以无法接受long型的长度参数。不知道这样解释是否很牵强。

java list得到属猪长度的方法如下:

1 java中的length属性是针对数组说的,比如说你声明了一个数组,想知道这个数组的长度则用到了length这个属性.

2 java中的length()方法是针对字符串String说的,如果想看这个字符串的长度则用到length()这个方法.

3.java中的size()方法是针对泛型集合说的,如果想看这个泛型有多少个元素,就调用此方法来查看

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

public static void main(String[] args) {

String []list={"ma","cao","yuan"}

String a="macaoyuan"

System.out.println(list.length)

System.out.println(a.length())

List<Object>array=new ArrayList()

array.add(a)

System.out.println(array.size())

}

输出的值为:

3

9

1