문제

Code:

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

Question: How is length calculate by Java here? Since char is not a Class, I am not sure where length is stored. If it isn't stored, is it calculated every time you do chars.length? (I presume not)

도움이 되었습니까?

해결책

The thing you wrote as char[] is an Object, an array, and has a public final field called length. It is calculated once when the array in created. Like all objects it also has a toString(), notify(), etc...

다른 팁

http://docs.oracle.com/javase/specs/jls/se7/html/jls-10.html#jls-10.7

The public final field length, which contains the number of components of the array. length may be positive or zero.

In this case chars.length is returning the number of elements in the array.

Or am I missing the question?

Even though char is not a Class/Object type in Java, an array of char actually is. And the length is a (final) field of that class. See the answer here for more.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top