En resumen, se puede utilizar para agregar un nuevo código o cambiar el código existente sobre la marcha. Aquí hay una explicación más detallada de este URL.
¿Por qué escribir un cargador de clases personalizado?
Las tres razones principales por las que desea crear un cargador de clases personalizadas son:
Para permitir la carga de clases de repositorios alternativos.
Este es el caso más común, en el que un desarrollador de aplicaciones podría querer cargar clases desde otras ubicaciones, por ejemplo, a través de una conexión de red.
Para particionar el código de usuario.
Este caso es utilizado con menos frecuencia por los desarrolladores de aplicaciones, pero es ampliamente utilizado en motores servlet.
Para permitir la descarga de clases.
Este caso es útil si la aplicación crea un gran número de clases que se usan solo por un período finito. Debido a que un cargador de clases mantiene un caché de las clases que ha cargado, estas clases no se pueden descargar hasta que el cargador de clases haya sido desreferenciado. Por esta razón, las clases de sistema y extensión nunca se descargan, pero las clases de aplicación se pueden descargar cuando su cargador de clases está.
Bueno, un servidor de aplicaciones Java como tomcat podría requerir un cargador de clases personalizado, para cosas tales como dar a cada aplicación su propia "instantánea" de las clases cargadas. –