java如何求字符数组的长度

Python017

java如何求字符数组的长度,第1张

如果你只是要数组长度的话,那么任意的数组都有length属性,直接访问就可以了。如果你想要字符串数组中所有字符的长度,就得循环了。

String[]

a

=

{"111","22","3333","44444"}

int

rs=0

for(

int

i=0

i<a.length

i++

){

rs+=a[i].length()

}

//

rs为字符数组中所有字符串的长度之和。

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

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

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