Короткий ответ: классы загружаются всякий раз, когда они нужны в первый раз. Обратите внимание, что «необходимый» также означает «на который ссылается любой другой загружаемый класс».
Так что, если у вас есть целая куча классов, которые никогда не затрагиваются каким-либо активным кодом, он не будет загружен.
Если вы хотите точно узнать, какие классы и когда загружается JVM, вы можете вызвать команду / процесс java с параметром -verbose:class
.