Встречается на 14% собеседований по Java

В чем разница между фреймворком и библиотекой

Фреймворк предоставляет готовую архитектуру приложения, определяет поток управления и требует соблюдения своих правил. Разработчик встраивает свой код в фреймворк (инверсия управления).

Библиотека — это набор готовых функций/классов, которые разработчик вызывает по мере необходимости, сохраняя контроль над потоком выполнения.

Пример:
Spring (фреймворк) диктует структуру приложения, а Apache Commons (библиотека) предоставляет утилиты, которые можно использовать точечно.

java
// Использование библиотеки
List<String> list = Arrays.asList("a", "b", "c"); // java.util.Arrays

// Использование фреймворка
@SpringBootApplication // Spring диктует структуру
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

Фреймворк — "скелет" приложения, библиотека — "инструменты в ящике".

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