看视频时,类加载器没太理解,现在再整理下几个要点
2013-07-02 09:48
267 查看
类加载器负责把类加载到java虚拟机即JVM中,指定类的名称,类加载器就会定位这个类的定义,每一个java类必须由类加载器加载。
当启动JVM的时候,我们可以使用三个类加载器:引导类加载器、扩展类加载器、应用程序类加载器
1.引导类加载器仅仅负责加载核心的Java库,比如位于<JAVA_HOME>/jre/lib 目录下的vm.jar,core.jar。这个类加载器,是JVM核心部分,是用native代码写成的。
2. 扩展类加载器负责加载扩展路径下的代码,一般位于<JAVA_HOME>/jre/lib/ext 或者通过java.ext.dirs 这个系统属性指定的路径下的代码。这个类加载器是由sun.misc.Launcher$ExtClassLoader 实现的。
3.应用程序类加载器负责加载java.class.path(映射系统参数 CLASSPATH的值) 路径下面的代码,这个类加载器是由 sun.misc.Launcher$AppClassLoader 实现的。
当处理类加载器时,父委托模式是一个需要理解的关键概念,它规定:类加载器在加载自己的类之前,可以委托先加载父类,父类加载器可以是客户化的类加载器或引导类加载器。但是有一点很重要,类加载器只能委托自己的父类加载器,而不能是子类加载器,即只能向上不能向下。
自定义类加载器:虽然在绝大多数情况下,系统默认提供的类加载器实现已经可以满足需求。但是在某些情况下,您还是需要为应用开发出自己的类加载器。比如您的应用通过网络来传输 Java 类的字节代码,为了保证安全性,这些字节代码经过了加密处理。这个时候您就需要自己的类加载器来从某个网络地址上读取加密后的字节代码,接着进行解密和验证,最后定义出要在 Java 虚拟机中运行的类来。
相关文章推荐
- 看视频时,类加载器没太理解,现在再整理下几个要点
- C语言数据结构之单向链表(已经调试可以实现相应的功能了,可是还是有几个问题现在还是不大理解,希望大家能够一起探讨)
- 各个需要整理的知识点 现在只是几个路径
- Flex加载swf的几个要点
- 几个地址参数及uboot加载启动内核过程的理解
- HI3531视频编码解码处理芯片项目相关理解和整理
- Oracle几个难理解概念整理
- Flex加载swf的几个要点
- 我所理解的网页推广设计的几个要点
- 无线高清视频传输设计中需要考虑的几个要点(转贴)
- FFMPEG解码流程理解搜集整理及tutorial5的理解,主要是音视频同步
- 整理webView控件加载H5网页中视频播放不了的解决方案
- 【Java面试整理之JVM】深入理解JVM结构、类加载机制、垃圾回收GC原理、JVM内存分配策略、JVM内存泄露和溢出
- Dicom要点整理三:C-Find/C-Move/C-Store 几个重要概念
- FFMPEG解码流程理解搜集整理及tutorial5的理解,主要是音视频同步
- Flex加载swf的几个要点
- 理解OpenStack中的OpenvSwitch的几个要点
- FFMPEG解码流程理解搜集整理及tutorial5的理解,主要是音视频同步
- FFMPEG解码流程理解搜集整理及tutorial5的理解,主要是音视频同步
- 整理硬盘发现几个以前做的视频,分享下