Почему объявление массива как объекта корректно в Java?

Следующее выражение компилируется:

Object oa = new float[20]; 

Как это выражение действительно?

По моему мнению, правильный синтаксис будет

Object [] oa = new float[20]; 

Ответ 1

Массивы - это объекты в Java. Таким образом, массив поплавков является объектом.

BTW, Object o = new Object[20]; также действителен, поскольку массив объектов - это объект.

Также обратите внимание, что Object[] oa = new float[20]; является недопустимым, поскольку примитивные поплавки не являются объектами, а массив поплавков, таким образом, не является массивом объектов. Что было бы правильно,

Object[] oa = new Float[20];

Что касается массивов, поскольку они являются объектами, они имеют все методы java.lang.Object. Они также имеют открытый конечный атрибут length, и они являются Cloneable и Serializable:

Object o = new float[20];
System.out.println("o instanceof Serializable = " + (o instanceof Serializable)); // true
System.out.println("o instanceof Cloneable = " + (o instanceof Cloneable)); // true

Ответ 2

В принципе, Object - суперкласс для всех объектов в Java. Итак, сделайте ссылку класса Object, а затем используйте его, как и любой другой объект.

Object ob = new Integer(5);

Массивы в Java - это не что иное, как объекты, поэтому ссылка класса Object может быть назначена массиву.