在上一篇JVM类加载机制详解(一)JVM类加载过程中说到,类加载机制的第一个阶段加载做的工作有:
1、通过一个类的全限定名(包名与类名)来获取定义此类的二进制字节流(Class文件)。而获取的方式,可以通过jar包、war包、网络中获取、JSP文件生成等方式。
2、将这个字节流所代表的静态存储结构转化为方法区的运行时数据结构。这里只是转化了数据结构,并未合并数据。(方法区就是用来存...
分类:
其他好文 时间:
2016-05-13 04:06:50
阅读次数:
204
类加载器按照层次,从顶层到底层,分为以下三种:
(1)启动类加载器(Bootstrap ClassLoader)
这个类加载器负责将存放在JAVA_HOME/lib下的,或者被-Xbootclasspath参数所指定的路径中的,并且是虚拟机识别的类库加载到虚拟机内存中。启动类加载器无法被Java程序直接引用。
(2)扩展类加载器(Extension ClassLoader)
这...
分类:
其他好文 时间:
2016-05-13 00:14:02
阅读次数:
155
类加载器
加载类的开放性
类加载器(ClassLoader)是Java语言的一项创新,也是Java流行的一个重要原因。在类加载的第一阶段“加载”过程中,需要通过一个类的全限定名来获取定义此类的二进制字节流,完成这个动作的代码块就是类加载器。这一动作是放在Java虚拟机外部去实现的,以便让应用程序自己决定如何获取所需的类。
虚拟机规范并没有指明二进制字节流要从一个Class文件获取,或者说...
分类:
其他好文 时间:
2016-05-07 08:58:27
阅读次数:
226
一.概述定义:虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型。类加载和连接的过程都是在运行期间完成的。二. 类的加载方式1):本地编译好的class中直接加载2):网络加载:java.net.URLClassLoader...
分类:
其他好文 时间:
2015-11-08 22:12:08
阅读次数:
255
java中采用双亲委派模型(Parents Delegation Model)来实现类的加载模式。双亲委派模型要求除了顶层的启动类加载器外,其余的类加载器都应当有自己的父类加载器,此处的父子关系不以继承来实现,而是采用组合来利用父加载器。双亲委派模型的工作过程:如果一个类加载器收到了类加载的请求,....
分类:
编程语言 时间:
2015-10-21 12:30:59
阅读次数:
159
在了解双亲委派模型之前,先了解一下类加载器的概念:类加载器的作用就是将真实的class文件根据位置将该Java类的字节码装入内存,并生成对应的Class对象。用户可以通过继承ClassLoader和重写findClass方法来定义自己的类加载器进行加载,系统类加载器按照层次,分为:(1).启动类加载...
分类:
其他好文 时间:
2015-10-17 12:05:56
阅读次数:
185
前言 Tomcat遵循J2EE规范,实现了Web容器。很多有关web的书籍和文章都离不开对Tomcat的分析,初学者可以从Tomcat的实现对J2EE有更深入的了解。此外,Tomcat还根据Java虚拟机规范实现了经典的双亲委派模式的类加载体系。本文基于Tomcat7.0的Java源码,对其类加载....
分类:
其他好文 时间:
2015-10-08 14:41:41
阅读次数:
224
java是一种类型安全的语言,它有四类称为安全沙箱机制的安全机制来保证语言的安全性,这四类安全沙箱分别是: 类加载体系 .class文件检验器 内置于Java虚拟机(及语言)的安全特性 安全管理器及Java API 本篇博客...
分类:
编程语言 时间:
2015-08-31 21:55:24
阅读次数:
382
所谓的无关性:
我们一直在强调Java的平台无关性,所谓的一次编写,到处运行。
那么究竟是什么造就了这种平台无关性,那就是Class文件,我们注意到编译完java文件后,会产生一个Class文件,而这些Class文件在各种虚拟机中的有相同的存储格式—–字节码。
除了平台无关性,Java语言还引申出来一个语言无关性。也就是说Java虚拟机是与Class这种特定格式的文件格式关联,所以就说明无论哪...
分类:
其他好文 时间:
2015-08-06 02:05:53
阅读次数:
1193
参考
参考classloader双亲委派机制
内容:加载一个类的时候先问自己的parent是否有,不断向上,仍无则自己加载类。
目的是为了在运行过程中不重复加载,且版本统一。
反转委派
每个方块都是一个类加载器,JavaEE规范推荐每个模块的类加载器先加载本类加载的内容,如果加载不到才回到parent类加载器中尝试加载。
反转委派原则的原因是应用服务器中所携带的类库并不是应用所期待的,也...
分类:
其他好文 时间:
2015-08-05 22:22:23
阅读次数:
205