`
kanwoerzi
  • 浏览: 1646344 次
文章分类
社区版块
存档分类
最新评论

Thread.currentThread().getContextClassLoader().loadClass(className)

 
阅读更多

编译器加载类要依靠classloader, 而classloader有3个级别,从高到低分别是BootClassLoader(名字可能不准确) , ExtClassLoader, AppClassLoader.
这3个加载器分别对应着编译器去寻找类文件的优先级别和不同的路径:BootClassLoader对应jre/classes路径,是编译器最优先寻找class的地方
ExtClassLoader对应jre/lib/ext路径,是编译器次优先寻找class的地方
AppClassLoader对应当前路径,所以也是编译器默认找class的地方
现在给你分析你的问题我想因为Thread.currentThread().getContextClassLoader().loadClass(className)
是线程中的类加载器,直接调用起来效率最高,假设在这三个类加载器都找不到你的类,直接用Class.forname()映射
,这样就要多消耗资源了,一个线程调用资源开销不大,那要是几百个并发呢。个人理解楼主参考一下

分享到:
评论

相关推荐

    Hbase 基本操作类

    String krbStr=Thread.currentThread().getContextClassLoader().getResource("krb").getFile(); //获取用户票据hezhong路径(hezhong为给合众分配的用户配置文件) String keyStr=Thread.currentThread()...

    Java路径问题解决方案汇集

    Java路径中的空格问题 ...  Thread.currentThread().getContextClassLoader().getResource().getPath();等多种相似方式获得的路径,不能被FileReader()和FileWriter()直接应用,原因是URL对空格,特

    jdbc 资料大全

    InputStream inStream = Thread.currentThread() .getContextClassLoader().getResourceAsStream( "application.properties"); properties.load(inStream); dataSource = BasicDataSourceFactory....

    JettyWebSocketTest2

    问题是当从@onOpen 方法和@onMessage 方法调用代码时, Thread.currentThread().getContextClassLoader() 是不同的。 在 onMessage 中,上下文类加载器将是 org.codehaus.plexus.classworlds.realm.ClassRealm 而...

    Exception in thread “main” javax.imageio.IIOException: Can’t read input file!

    Exception in thread “main” javax.imageio.IIOException: Can’t read input file!... private static String basePath=Thread.currentThread().getContextClassLoader().getResource().getPath(); public static v

    大数据面试题.pdf

    ClassLoader loader = Thread.currentThread.getContextClassLoader(); //也可以⽤(ClassLoader.getSystemClassLoader()) Class cls = loader.loadClass("xx.xx"); //这句话没有执⾏初始化 forName可以控制是否初始...

    JDK8-Nashorn-BUG:Nashorn中的错误

    JDK版本: 1.8.0_131 ... * 0: invokestatic java/lang/Thread.currentThread:()Ljava/lang/Thread; * 3: invokevirtual java/lang/Thread.getContextClassLoader:()Ljava/lang/ClassLoader; * 6: astore_0

    xml与反射.txt

    第一:获取类加载器:ClassLoader loader=Thread.currentThread().getContextClassLoader();//获取当 前线程的上下文类加载器 第二:通过类加载器获取类 Class clazz=loader.loadClass("com.taobao.reflect.car")//...

    day020-继承加强和设计模式代码和笔记.rar

    1、ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); //获取当前线程类加载器 2、InputStream is = classLoader.getResourceAsStream("文件路径/文件名");//通过当前线程的类...

    对Java的ClassLoader的几点认识

    ClassLoader与其他类的不同之处是它是为JVM服务的,属于“公务员”,例如Thread带有getContextClassLoader()和setContextClassLoader()方法;  2、ClassLoader的实现类URLClassLoader完成工作的方法是根据传入的...

Global site tag (gtag.js) - Google Analytics