سؤال

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