Есть ли гарантия, что загрузчик классов Java по умолчанию, по умолчанию, система не пытается загружать классы, которые не указаны в запущенном коде? Несколько примеров того, что я имею в виду:
- Я использую
framework.jar
, который, как я знаю, содержит ссылки на другие классыlibrary.jar
, но я использую только такую часть фреймворка, которая не содержит этих ссылок. Можно ли оставитьlibrary.jar
вне? - Статические блоки запускаются при первом загрузке класса. Если какой-либо код не содержит ссылки на определенный класс, уверен ли он, что статический блок не запущен?
Быстрое тестирование, похоже, работает так, как предполагалось выше, и в любом случае не имеет смысла загружать неиспользуемые классы, но есть ли какие-либо гарантии на это?
Дополнение: Кажется, что мои "статические блоки запускаются при первом загрузке класса" выше, это несколько неверно. Конечно, можно загружать классы (одно) без их запуска (другое). Поэтому меня интересуют оба случая; гарантирует, что классы не загружаются, а не запускаются.