Какие знаешь конструкторы у Class

«Какие знаешь конструкторы у Class» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Java (и Android) у класса Class есть несколько конструкторов, но они скрыты и не предназначены для явного вызова. Основные способы получения экземпляра Class:

  1. Через литерал класса:
    Class<?> clazz = String.class;
  1. Через getClass() у объекта:
    String str = "Hello";
    Class<?> clazz = str.getClass();
  1. Через Class.forName():
    Class<?> clazz = Class.forName("java.lang.String");
  1. Через загрузчики классов (например, ClassLoader).

Конструкторы Class приватные, так как JVM управляет созданием этих объектов.