Вопрос-ответ

Is an array an object in Java?

Является ли массив объектом в Java?

В Java мы можем объявить массив, используя следующее:

String[] array = new String[10]; 
int size = array.length;

Означает ли это, что сам массив является объектом?
Я спрашиваю, потому что в C ++ массив - это просто указатель и у него нет никаких методов.

Переведено автоматически
Ответ 1

ДА.

Раздел 4.3.1 спецификации языка Java начинается со:


Объект - это экземпляр класса или массив.


Ответ 2

Да; в спецификации языка Java написано:


В языке программирования Java массивы являются объектами (§4.3.1), создаются динамически и могут быть назначены переменным типа Object (§4.3.2). Все методы класса Object могут быть вызваны для массива.


Ответ 3

Что ж, давайте спросим Java!

public class HelloWorld
{
public static void main(String[] args)
{
System.out.println(args instanceof Object);
int[] someIntegers = new int[] {42};
System.out.println(someIntegers instanceof Object);
}
}

Вывод:

true
true
Ответ 4

Да, это объект в Java.

Также обратите внимание, что при этом array.length вы не вызываете никаких методов, а просто обращаетесь к length полю массива. В классе Arrays существует множество статических методов.

java