Встречается на собеседованиях • сегодня

Можно ли загрузить в 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) для изоляции веб-приложений.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы