Короче говоря, его можно использовать для добавления нового кода или для изменения существующего кода на лету. Вот более подробное объяснение из этого URL .
Зачем писать собственный загрузчик классов?
Три основных причины для создания пользовательского загрузчика классов:
Чтобы разрешить загрузку классов из альтернативных репозиториев.
Это наиболее распространенный случай, когда разработчик приложения может захотеть загружать классы из других мест, например, по сетевому соединению.
Для разбиения кода пользователя.
Этот случай менее часто используется разработчиками приложений, но широко используется в механизмах сервлетов.
Разрешить разгрузку классов.
Этот случай полезен, если приложение создает большое количество классов, которые используются только в течение конечного периода. Поскольку загрузчик классов поддерживает кэш загруженных им классов, эти классы не могут быть выгружены, пока сам загрузчик классов не будет разыменован. По этой причине системные классы и классы расширений никогда не выгружаются, но классы приложений могут выгружаться, когда их загрузчик классов установлен.