Является ли char [] в Java объектом? - PullRequest
4 голосов
/ 10 ноября 2010

Я новичок в Java, но если я правильно понимаю, char является примитивом.

Выполнение char temp и temp.hashCode () не будет компилироваться, но выполнение char [] temp2 = new char[2] и temp2.hashCode () будут скомпилированы и выполнены.

Значит ли это, что char [] является объектом ???

Ответы [ 6 ]

17 голосов
/ 10 ноября 2010

a char является примитивом, но массив типа char является объектом

Один из способов определить это - создать его динамически:

final Object charArray = Array.newInstance(Character.TYPE, 5);
System.out.println(charArray.getClass().getComponentType());

Выход:

символ

(Character.TYPE является ссылкой на примитивный класс char. Другой способ получить доступ к этому классу - через char.class)

7 голосов
/ 10 ноября 2010

Да.Все массивы являются объектами, даже массивами примитивных типов.

0 голосов
/ 10 ноября 2010

Массив - это не просто несколько примитивных типов, он также имеет поле "длина".Примитивные типы не имеют полей.Еще одна вещь, которая устанавливает массивы appart из примитивных типов, заключается в том, что они являются ссылками и, следовательно, должны собирать мусор.

0 голосов
/ 10 ноября 2010

Да, массивы - это объекты в Java.

0 голосов
/ 10 ноября 2010

Да, каждый массив каждого типа является объектом.

0 голосов
/ 10 ноября 2010

Да, все массивы являются объектами в Java.

...