线程的上下文类加载器和普通类加载器有什么区别?

也就是说,如果Thread.currentThread().getContextClassLoader()getClass().getClassLoader()返回不同​​的类加载器对象,将使用哪个对象?

最佳答案

每个类将使用自己的类加载器来加载其他类。因此,如果 ClassA.class 引用 ClassB.class,则 ClassB 需要位于 ClassA 的类加载器或其父类的类路径上。

线程上下文类加载器是当前线程的当前类加载器。可以从 ClassLoaderC 中的类创建对象,然后将其传递给 ClassLoaderD 拥有的线程。在这种情况下,对象需要直接使用 Thread.currentThread().getContextClassLoader() 才能加载其自己的类加载器上不可用的资源。

关于java - 线程的上下文类加载器和普通类加载器之间的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18108711/

10-12 20:59