Java如何计算原始数组的长度?

4

代码:

char[] chars = "abcd".toCharArray();
System.out.println(chars.length);

问题: Java中的长度是如何计算的?由于char不是一个类,我不确定长度存储在哪里。如果它没有被存储,每次使用chars.length时会重新计算吗?(我假设不会)

答: 在Java中,char数组是一个对象,它有一个名为length的属性来存储其长度。当你调用chars.length时,实际上是访问了这个属性,而不是重新计算数组的长度。所以你可以放心地使用chars.length,它的效率很高。

@RaulRene - 你说得对。我没有用正确的词语进行搜索。 - Farhan Syed
4个回答

8
你写的char[]是一个对象,一个数组,并且有一个名为length的公共final字段。它在创建数组时被计算出来,只计算一次。像所有对象一样,它也有toString(),notify()等方法...

1
你是对的。我能够执行 chars.getClass() 并且它打印了 "class [C"。 - Farhan Syed

3

0
在这种情况下,chars.length 返回数组中元素的数量。
或者我没有理解问题?

0
尽管在Java中,char不是类/对象类型,但char数组实际上是。而长度是该类的(final)字段。请参见此处的回答以了解更多信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接