У меня есть несколько вопросов о экземплярах класса Classэкземпляров класса класса
1) Правильно ли я понимаю, что сказать, для класса Dog есть только один экземпляр класса Class. Другими словами, учитывая следующие строки
Dog dog1 = new Dog();
Dog dog2 = new Dog();
Class dog1Class = dog1.getClass();
Class dog2Class = dog2.getClass();
Class dogClass = Dog.class;
есть только один экземпляр класса Class - Class<Dog>
.
Если вы сравниваете эти ссылки с ==, вы получаете, что они являются одним и тем же объектом.
Вопрос в том, будет ли getClass и static .class всегда возвращать один и тот же экземпляр во время одного запуска основного метода?
2) Когда именно эти экземпляры созданы?
Если у вас есть несколько загрузчиков классов, все становится еще сложнее ... –
Довольно хороший вопрос на самом деле, и как уже сказал @Oli, несколько загрузчиков классов и особенно динамическая загрузка могут бросить целую коллекцию ключей в работе. Действительно любопытно посмотреть, что на самом деле ответ. – Esko