why does Array.length have no () but String.length () does?
At the syntactic level, it really comes down to "historical reasons" and "because the Java (pre) 1.0 developers decided to do this." The only people who can really tell you why the language developers themselves are.
However:
The field lengthis special in the sense that it is actually located in the header of the array object, and the selection of the length of the array uses a special byte code.
length , . , , .. ( final .)
length .
(pre-) Java API- .
, . length() size() , .., Java . ( Java), .