So che gerarchia di caricatori di classe in Java è:Perché sono necessari più caricatori di classe?
classe 1.Bootstrap loader (in codice nativo) classe
2. Estensione loader (sun.misc.Launcher$ExtClassLoader
)
3. classe System loader (sun.misc.Launcher$AppClassLoader class
)
4 Caricatori di classi personalizzate (ad es. Server di applicazioni, classloader di auricolari, classloader di guerra)
Non è chiaro per me perché sono necessari ulteriori programmi di caricamento classe figlio. Potrei capire la necessità di un programma di caricamento classi "pure java" dopo quello nel codice nativo.
Ho qualche idea di possibili motivi ma qualcuno può fornirmi una spiegazione chiara per questo comportamento/necessità di gerarchie di caricatori di classi?
In generale, ma applicabile anche per j2ee.
I programmi di caricamento di classe sono tenuti a mantenere tutte le classi caricate, a condizione che sia raggiungibile anche il 'ClassLoader'.Se vuoi che una classe sia collezionabile in precedenza, crea una nuova istanza di 'ClassLoader' appositamente per essa. –
Hai ragione; la modifica. – chrylis