У ClassLoader.defineClass есть несколько перегрузок. Типичный вариант принимает binary name класса, byte[] с байткодом, offset и length; другой дополнительно принимает ProtectionDomain.
Какие входные параметры у метода defineClass?
У ClassLoader.defineClass есть несколько перегрузок. Типичный вариант принимает binary name класса, byte[] с байткодом, offset и length; другой дополнительно принимает ProtectionDomain.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
У ClassLoader.defineClass есть несколько перегрузок. Типичный вариант принимает binary name класса, byte[] с байткодом, offset и length; другой дополнительно принимает ProtectionDomain.
Также существует перегрузка с ByteBuffer и ProtectionDomain. Это описание class-файла, а не исходный Java-код: JVM проверяет формат и соответствие имени. Методы ClassLoader защищённые, поэтому обычно вызываются из собственного загрузчика. Не путайте их с MethodHandles.Lookup.defineClass(byte[]), у которого другой API и правила контекста определения. Назовите конкретную перегрузку, если интервьюер требует точную сигнатуру.
Источник: docs.oracle.com.