Como o Classloader é escolhido para uma classe?

Motivação

Suponha que temos uma hierarquia de carregamento de classe que se parece com isso:

 Bootstrap
     |
  System
     |
  Custom

Digamos queCustom O Classloader é usado para carregar uma classecom.example.SomeClass. Verifica se oSystem classloader pode carregá-lo, que novamente verifica seBootstrap O classloader pode carregá-lo. Já que ambos não podemcom.example.SomeClass é carregado porCustom classloader.

Qualquer classe quecom.example.SomeClass depende de passa pelo mesmo. Eu acredito que entendo esse processo.

Questão

Eu não entendo porqueCustom tentaria carregarcom.example.SomeClass em primeiro lugar. Como o carregador de classe atual é escolhido em um aplicativo Java?

questionAnswers(2)

yourAnswerToTheQuestion