Short answer
An array exposes its size as a public final field, `arr.length` (no parentheses), fixed at creation time.
Explanation
A String exposes its size as a method, `s.length()` (with parentheses). Mixing them up -- writing arr.length() or s.length -- is a common beginner compile error. Also note arrays are fixed-size: you cannot grow arr.length; you allocate a new, larger array (or use ArrayList) instead.
Common mistakes
- Calling array.length() with parentheses or string.length without them.
- Confusing length (array field), length() (String) and size() (collections).