Встречается на собеседованиях • сегодня
Можно ли загрузить в JVM два класса с одинаковым именем
Да, можно, если они загружены разными загрузчиками классов (ClassLoader). Каждый загрузчик создает свою область видимости (namespace), поэтому классы с одинаковыми именами, но из разных загрузчиков, будут считаться разными.
Пример:
java
ClassLoader loader1 = new URLClassLoader(new URL[]{new File("path/to/jar1.jar").toURI().toURL()});
ClassLoader loader2 = new URLClassLoader(new URL[]{new File("path/to/jar2.jar").toURI().toURL()});
Class<?> classA1 = loader1.loadClass("com.example.ClassA"); Class<?> classA2 = loader2.loadClass("com.example.ClassA");
System.out.println(classA1 == classA2); // false
text
**Важно:**
- Классы должны быть загружены разными загрузчиками.
- Это может привести к конфликтам, если классы взаимодействуют через общий интерфейс или родителя.
- Такой подход используется, например, в сервлет-контейнерах (Tomcat) для изоляции веб-приложений.
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы