Java之ClassLoader
2016-04-21 22:52
423 查看
(1)ClassLoader基本概念
与c和c++编写的程序不同,Java程序并不是一个可执行文件,而是由许多独立的类文件组成的,每一个文件对应一个Java类,此外,这些类文件并非全部装入内存,而是根据程序需要而逐渐载入,ClassLoader是JVM实现的一部分,ClassLoader包括bootstrap classloader(启动类加载器),ClassLoader在JVM运行的时候加载Java核心的API,以满足Java程序最基本的要求,其中就包括用户定义的ClassLoader,这里所谓的用户定义,是指通过Java程序实现的两个ClassLoader:ExtClassLoader和APPClassLoader,前者是用来加载Java的拓展API,也就是lib/ext/中的类;后者是用来加载用户机器上CLASSPATH设置目录中的Class。通常在没有指定ClassLoader的情况下,程序员自定义的类就由该ClassLoader进行加载。
(2)ClassLoader加载流程
当运行一个程序的时候,JVM启动---->运行bootstrap classloader---->该ClassLoader加载Java核心API,以及ExtClassLoader、APPClassLoader---->ExtClassLoader加载拓展API---->APPClassLoader加载CLASSPATH目录下的Class---->结束
与c和c++编写的程序不同,Java程序并不是一个可执行文件,而是由许多独立的类文件组成的,每一个文件对应一个Java类,此外,这些类文件并非全部装入内存,而是根据程序需要而逐渐载入,ClassLoader是JVM实现的一部分,ClassLoader包括bootstrap classloader(启动类加载器),ClassLoader在JVM运行的时候加载Java核心的API,以满足Java程序最基本的要求,其中就包括用户定义的ClassLoader,这里所谓的用户定义,是指通过Java程序实现的两个ClassLoader:ExtClassLoader和APPClassLoader,前者是用来加载Java的拓展API,也就是lib/ext/中的类;后者是用来加载用户机器上CLASSPATH设置目录中的Class。通常在没有指定ClassLoader的情况下,程序员自定义的类就由该ClassLoader进行加载。
(2)ClassLoader加载流程
当运行一个程序的时候,JVM启动---->运行bootstrap classloader---->该ClassLoader加载Java核心API,以及ExtClassLoader、APPClassLoader---->ExtClassLoader加载拓展API---->APPClassLoader加载CLASSPATH目录下的Class---->结束
相关文章推荐
- AS3自写类整理笔记 ClassLoader类第1/2页
- 深入解析Java中的Classloader的运行机制
- java安全沙箱(一)之ClassLoader双亲委派机制
- 加载应用外面的数据库驱动获取连接
- 使用了Spring boot devtools, dozer转换嵌套对象失败解决记录
- 类加载器获取资源文件
- 【转载】<实战> 分析PermGen上存放的被Classloader所加载的类实践
- ClassLoader加载机制
- classLoader 原理
- 动态加载远程Jar的实现方式
- Java类加载器
- Java类加载器-Bootstrap、 ExtClassLoader、 AppClassLoader
- assert 的两种用法
- ioc解析java反摄机制
- 生成对象的方法比较
- 提升JSP页面响应速度的七大秘籍绝招
- class loader 相关笔记
- 8月25日学习杂记
- Java相关技术
- Bouncy Castle 多版本 与 Classloader 的问题