JDK getResource流程图
2022-04-26 10:47:40 0 举报
JDK getResource流程图
作者其他创作
大纲/内容
getBootstrapResource(name)调用BootStrapClassLoader的资源获取
Extension ClassLoader
cp IX=\"0\
URLClassPath.findResource(name)
是否资源名称以/开头
父classloader是否为空
classloader.getResource(name)
获取到url,并返回
获取的资源url是否为空
URLClassPath.getLookupCache(name)返回索引数组用于查找可能包含指定的资源
cache缓存是否为空
URLClassPath$Loader.getLoader(URL url)用于获取加载资源的loader
resolveName(name)
file != null && file.endsWith(\"/\")
URLClassPath$FileLoader.findResource()查找资源
获取加载资源的Loader是否是JarLoader
返回截取当前/后的name
否
loaders.get(intcache[index])获取加载资源的Loader
getResource(name)
url.getProtocol()协议是file则构建FileLoader:new FileLoader(url);
是
UserApp ClassLoader
当前classloader的findResource(name)
Bootstrap ClassLoader
URLClassPath$JarLoader.findResource()查找资源
URLClassLoader.findResource(name)
parent.getResource(name)调用父classloader的getResource(name)方法
结束
URLClassPath$Loader.getLoader(int index)
双亲委派模型流程
JDK getResource(String name)流程图
App ClassLoader
获取当前类的getName,截取掉类名留下包名并拼接资源name
0 条评论
下一页