Как массив работает внутри 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
.