黑马程序员技术交流社区
标题:
关于类加载器
[打印本页]
作者:
王大斌
时间:
2013-4-22 00:05
标题:
关于类加载器
在java中。当我们运行程序的时候,类加载器会去指定的位置寻找特定的.class
这就是在我们配置的classPath中寻找
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
但是,当我们使用类加载器加载一个资源文件的时候
Class c = String.class;
c.getResourceAsStream(name);
c.getClassLoader().getResourceAsStream(name)
1. Class.getResourceAsStream(String path) : path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从ClassPath根下获取。其只是通过path构造一个绝对路径,最终还是由ClassLoader获取资源。
2. Class.getClassLoader.getResourceAsStream(String path) :默认则是从ClassPath根下获取
这不是与classpath的配置不一样吗,为什么类加载器会去那里寻找资源??而不是在运行的这个类的当前目录下找这个资源,并加载。
困扰了好几天了...
作者:
肖川
时间:
2013-4-23 13:16
getClass():取得当前对象所属的Class对象
getClassLoader():取得该Class对象的类装载器
类装载器负责从Java字符文件将字符流读入内存,并构造Class类对象,类装载器自身也是一个类,它也需要被装载到内存中来,这个类就是Bootstrap ClassLoader.,如果一个类是通过bootstrap 载入的,那我们通过这个类去获得classloader的话,就会从classpath获取,所以保险起见最好还是使用自己写的类来获取classloader
作者:
尹丽峰
时间:
2013-4-26 23:44
类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表示一个 Java 类。通过此实例的 newInstance()方法就可以创建出该类的一个对象
QQ截图20130426234355.png
(130.39 KB, 下载次数: 0)
下载附件
2013-4-26 23:44 上传
作者:
黄玉昆
时间:
2013-4-27 22:33
如果仍有问题,请继续追问,如果问题已解决,请将分类改为已解决,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2