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.
Eu não entendo porqueCustom
tentaria carregarcom.example.SomeClass
em primeiro lugar. Como o carregador de classe atual é escolhido em um aplicativo Java?