So, every Java text book talks about how flexible Java is since it can load classes at run time. Just cobble together a string and give it to Class.forName(), and
Class.forName()
Application Servers rely also heavily on ClassLoaders to isolate the different deployed module. E.g.
ClassLoaders
Thanks to the magic of class loaders...