The J2EE specification has not clearly mandated the classloading scheme to be used by the containers. Hence every app server vendor does it in a different way. WebSphere does it differently, JBoss does it diff, Oracle does it diff and WebLogic does it diff.
Remember that in J2EE, Thread.currentThread.getContextLoader() is the king and the only method that should be utilised to do classloading. Debu Panda from Oracle has a blog on some best practices for J2EE classloading. J2EE Classloading Best Practices
OnJava Article on classloading. Inside Class Loaders: Debugging
Now if you want to learn about the internals of classloading, the following article is useful,Internals of Java Class Loading
Ok, for advanced classloading, read Advanced Classloading
Classloaders are powerful and are key to hot deployment of applications, that we have come to love, as developers. Thanks to JBoss.