Delegation Principle: If a class is not loaded already, the classloaders delegate the request to load that class to their parent classloaders.
Visibility Principle: Classes loaded by parent classloaders are visible to child classloaders but not vice versa.
Uniqueness Principle: When a classloader loads a class, the child classloaders in the hierarchy will never reload that class.