黑马程序员技术交流社区

标题: 关于JAVA类加载器 [打印本页]

作者: 黑马不黑    时间: 2014-1-11 16:16
标题: 关于JAVA类加载器
本帖最后由 黑马不黑 于 2014-1-12 09:18 编辑

在JAVA API里的类加载器除了常用到的BootStrap、ExtClassLoader、AppClassLoader,还有哪些是会用到的啊?一个程序开始运行main()函数跟类加载器加载有什么关系?

作者: doitforyou    时间: 2014-1-11 21:18
在web开发中,tomcat中就自带了web方面的类加载器,类加载器有哪些,主要是需求,在javaAPI中,BootStrapClassLoader、ExtClassLoader、AppClassLoader就已经满足我们所需了,第一个负责加载核心类库和后面两个类加载器,ExtClassLoader负责加载扩展类如工具类,App类加载则负责我们编写的位于CLASSPATH下的class文件。
一个程序开始运行始于main方法,因为它是程序的入口,如同一栋建筑的大门,但是进去后,你可能会用到某几个房间,而类加载器则是相当于钥匙,将房间代表的class文件加载到你需要的程序中。
另外,类加载器的双亲委托机制也是需要注意的。
作者: 张志明    时间: 2014-1-11 21:27
本帖最后由 张志明 于 2014-1-11 21:30 编辑

类加载器用来加载 Java 类到 Java 虚拟机中。Java 源程序在经过 Java 编译器编译之后就被转换成 .class 文件。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class 类的一个实例。
引导类加载器(bootstrap class loader):它用来加载 Java 的核心库
扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。

系统类加载器(system class loader):它根据 Java 应用的类路径(CLASSPATH)来加载 Java 类。一般来说,Java 应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader() 来获取它。

除了系统提供的类加载器以外,开发人员可以通过继承 java.lang.ClassLoader 类的方式实现自己的类加载器,以满足一些特殊的需求。

我的笔记你看看。。回答问题会得技术分吗????       努力进黑马~!!





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2