java数组的最大长度是多少?
2018-03-03 22:30
281 查看
Java 中数组的最大长度是多少呢?看一下它的length属性就可以了。length属性是32位的有符号整数,它的最大值是2的31次幂,就是2G。为何有这个限制呢?为什么length的属性不是long型呢?我们假设一下,如果它是long型的,那么它的最大长度是2的63次幂。内存永远也不会有那么大吧。即使是字节数组长度是int的,最大长都达到2GB.
由此想到了String,这个家伙底层也是基于数组的,是一个字符数组。字符是16位的基本类型,一个String的最大长度是多少呢?就是字符数组的最大长度也是2G,占用内存是4GB。
从JVM的角度来解释:创建数组的字节码是anewarray和newarray,操作数栈的字宽是32位,而这两个字节码的参数都是一个字长,所以无法接受long型的长度参数。不知道这样解释是否很牵强。转自 http://messi-18.iteye.com/blog/1618635
由此想到了String,这个家伙底层也是基于数组的,是一个字符数组。字符是16位的基本类型,一个String的最大长度是多少呢?就是字符数组的最大长度也是2G,占用内存是4GB。
从JVM的角度来解释:创建数组的字节码是anewarray和newarray,操作数栈的字宽是32位,而这两个字节码的参数都是一个字长,所以无法接受long型的长度参数。不知道这样解释是否很牵强。转自 http://messi-18.iteye.com/blog/1618635
相关文章推荐
- java数组的最大长度是多少?
- Java 数组的最大长度 位图集合的最大长度
- java中数组的最大长度以及List的最大容量
- Java整型数组的最大长度到底有多长?
- java中数组的最大长度以及List的最大容量
- Java整型数组的最大长度到底有多长?
- J2ME支持的数组最大长度是多少?创建一个164025大的int型数组报内存溢出异常!
- java中数组的最大长度以及List的最大容量
- java中数组的最大长度以及List的最大容量
- Java整型数组的最大长度到底有多长?
- java__给定一个非负整数数组,假定你的初始位置为数组第一个下标。 数组中的每个元素代表你在那个位置能够跳跃的最大长度。 请确认你是否能够跳跃到数组的最后一个下标。
- java中数组的最大长度以及List的最大容量
- java中数组的最大长度以及List的最大容量
- Java整型数组的最大长度到底有多长?
- java中数组的最大长度以及List的最大容量
- java中数组的最大长度以及List的最大容量
- java中数组的最大长度以及List的最大容量
- java中数组的最大长度以及List的最大容量
- Java中String接受的最大字符串的长度是多少
- java中数组的最大长度以及List的最大容量