The second one calls the first one. The difference is described in the javadoc.
The first one takes paths that don’t start with a /
, and always starts at the root of the classpath.
The second one takes path that can start with a /
. If it does, it starts at the root of the classpath. If not, it starts at the package of the class on which the method is called.
So getClass().getClassLoader().getResource("foo/bar.txt")
is equivalent to getClass().getResource("/foo/bar.txt")
.
And, assuming getClass() returns a class that is in the package foo
, getClass().getResource("bar.txt")
is equivalent to getClass().getClassLoader().getResource("foo/bar.txt")