双亲委派模型

双亲委派模型是Java类加载器的核心设计,确保类加载的安全性与唯一性。其原理是:类加载器收到请求后先委派给父类加载器,逐层向上,只有当父加载器无法加载时,子加载器才尝试自行加载。Java类加载器层级从高到低依次为:启动类加载器(加载核心类库)、扩展类加载器、应用程序类加载器(加载ClassPath下的类)以及自定义类加载器。该模型带来三大优势:防止核心API被篡改(安全性)、保证同一类只加载一次(唯一性)、实现层级隔离避免冲突。但在SPI机制(如JDBC驱动)、Tomcat容器(Web应用隔离)和热部署等场景中会打破该模型,通过线程上下文类加载器或自定义加载器实现反向委派或直接加载。