Как Classloader определяет, какие классы он может загрузить?

Я читаю о загрузке классов в Java.

мотивация

Предполагая, что у нас есть иерархия загрузчика классов, которая выглядит следующим образом, я понимаю, что классы загружаютсяFirst не доступны напрямую классам, загруженнымSecond (и наоборот).

 Bootstrap
     |
   System
     |
   Common
   /    \
First Second

Я также понимаю, что загрузчик классов проверяет со своим родительским загрузчиком классов, может ли он загрузить класс и, если это так, делегирует загрузку своему родителю.

Вопрос

Как загрузчики классов на самом деле определяют, могут ли они загрузить какой-то данный класс?

Ответы на вопрос(3)

Ваш ответ на вопрос