class.getResource()方法的更新 坑

关于getClass(),Object.class,getClassLoader的理解
彻底搞懂Class.getResource和ClassLoader.getResource的区别和底层原理

java8

java14

转自 https://blog.csdn.net/weixin_34293911/article/details/91980906

首先class.getResource("/") = class.getClassLoader().getResource("")
最终都是调用ClassLoader.getResource("") 实现, 由于ClassLoader.getResource("") 是从classpath根目录下开始查找。
而class.getResource()是从当前类所在目录查找, 当以"/"开始时,切换到从classpath根目录开始查找。
由源码知class.getResource()的实现过程为 : 
IF 参数 startwith "/" ----> ClassLoader.getResource(参数.replaceFirst("/",""));
IF 参数 not startwith "/" ----->ClassLoader.getResource("package1/package2/package3/"+参数);













种一棵树最好的时间是十年前,其次是现在。
原文地址:https://www.cnblogs.com/islch/p/12738252.html