类加载器-双亲委派-源码分析1
生活随笔
收集整理的這篇文章主要介紹了
类加载器-双亲委派-源码分析1
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
雙親委派模式
所謂的雙親委派,就是指調用類加載器的 loadClass 方法時,查找類的規則
注意
protected Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException {synchronized (getClassLoadingLock(name)) {// 1. 檢查該類是否已經加載Class<?> c = findLoadedClass(name);if (c == null) {long t0 = System.nanoTime();try {if (parent != null) {// 2. 有上級的話,委派上級 loadClassc = parent.loadClass(name, false);} else {// 3. 如果沒有上級了(ExtClassLoader),則委派BootstrapClassLoaderc = findBootstrapClassOrNull(name);}} catch (ClassNotFoundException e) {}if (c == null) {long t1 = System.nanoTime();// 4. 每一層找不到,調用 findClass 方法(每個類加載器自己擴展)來加載c = findClass(name);// 5. 記錄耗時sun.misc.PerfCounter.getParentDelegationTime().addTime(t1 - t0);sun.misc.PerfCounter.getFindClassTime().addElapsedTimeFrom(t1);sun.misc.PerfCounter.getFindClasses().increment();}}if (resolve) {resolveClass(c);}return c;} }?
總結
以上是生活随笔為你收集整理的类加载器-双亲委派-源码分析1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 类加载器-扩展加载器
- 下一篇: 类加载器-双亲委派-源码分析2