В Java каждый класс должен быть загружен каким-либо загрузчиком классов.
Как загружается первый класс? Он должен быть загружен через некоторый загрузчик классов (который является просто другим классом), поэтому без специального кода это приведет к рекурсии бесконечности.
Загрузчик классов, который загружает первые классы (java.lang.Object
, java.lang.Class
, java.lang.String
, java.lang.ClassLoader
и другие), поэтому не может быть "нормальным" загрузчиком классов.
Именно этот загрузчик классов упоминается как первичный загрузчик классов (первичный: от латинского, что означает «первый», «источник (al)»)
Для дальнейшего изучения см. Архитектура безопасности Java и Защита Java