Ответ 1
Хотя массивы являются объектами в том смысле, что они наследуют java.lang.Object, классы создаются динамически как особая особенность языка. Они не определены в исходном коде.
Рассмотрим этот массив:
MySpecialCustomObject[] array;
Для этого нет исходного кода. Вы создали его в коде динамически.
Причина, по которой длина в нижнем регистре, и поле действительно связано с тем, что более поздние стандарты кодирования Java не существовали в то время, когда это было разработано. Если массив разрабатывался сегодня, вероятно, это был бы метод getLength().
Длина - это конечное поле, определенное при построении объекта, оно не является константой, поэтому некоторые стандарты кодирования не хотят, чтобы это было в верхнем регистре. Однако, как правило, в Java сегодня все обычно делается как константа в верхнем регистре или помечено как закрытое с помощью общедоступного метода getter, даже если оно является окончательным.