Этот запрос размещен в основном понимают пункты, какКак массив работает внутри Java?
Объект является экземпляром класса или массив;
Массив - это подкласс класса
Object
;Все, что является экземпляром, отличным от примитива, является объектом Java.
Вот мое понимание работы с массивами на Java.
Учитывая приведенную ниже программу,
/* dummy.java */
class C {
private int i;
public C() {
i = 1;
System.out.println("Am in constructor");
}
}
public class dummy {
public static void main(String[] args) {
C[] c = new C[2]; // Line 11
c[0] = new C();
System.out.println(c);
}
}
Объект типа class [LC
создается в время выполнения после запуска,
C[] c = new C[2]; //Line 11
В приведенном выше коде. class [LC
является непосредственным подклассом класса Object
. Эталонная переменная c
указывает на этот объект (показано на красной границе ниже) после запуска Line 12
в вышеуказанном коде. Контрольные переменные располагаются в стеке, и объект типа class C
будет находиться в куче.
Для изменения ниже line 11 & 12
в приведенном выше коде
C[][] c = new C[2][2];
c[0][0] = new C();
сделает представление, как показано ниже.
ли мое понимание правильно? Если да, можете ли вы объяснить больше об использовании class [LC
во время выполнения для создания объекта?
Примечание: C[].class
дает фактический тип во время выполнения, который составляет class [LC
.
Почти правильно. Однако экземпляр C не является частью массива (в соответствии с тем, что подразумевает ваша красная граница). –
Что вы надеетесь извлечь из этого? Почему ты хочешь знать. Это может помочь кому-то дать вам лучший ответ. – BillR
Есть также сведения о том, что память для массива будет содержать размер массива, тип, и он может быть не смежным. –