每个Java虚拟机都有一个类加载器子系统,根据某个全限定名来装入类型,同样每个Java虚拟机都有一个执行引擎,它负责执行那些包含在被装载类的方法中的指令。
当虚拟机运行一个程序时,就需要从已加载的文件中得到信息,将这些信息组织到运行时数据区,以便于管理。Java运行时的数据区域划分
1、程序计数器:程序计数器是一块较小的内存空间,可以看做是当前线程的字节码的行号指示器。
Java虚拟机的多线程...
分类:
编程语言 时间:
2015-08-06 00:27:38
阅读次数:
148
参考
参考classloader双亲委派机制
内容:加载一个类的时候先问自己的parent是否有,不断向上,仍无则自己加载类。
目的是为了在运行过程中不重复加载,且版本统一。
反转委派
每个方块都是一个类加载器,JavaEE规范推荐每个模块的类加载器先加载本类加载的内容,如果加载不到才回到parent类加载器中尝试加载。
反转委派原则的原因是应用服务器中所携带的类库并不是应用所期待的,也...
分类:
其他好文 时间:
2015-08-05 22:22:23
阅读次数:
205
查了一些资料也不是太明白两个的区别,但是前者是最安全的用法打个简单的比方,你一个WEB程序,发布到Tomcat里面运行。首先是执行Tomcatorg.apache.catalina.startup.Bootstrap类,这时候的类加载器是ClassLoader.getSystemClassLoade...
分类:
其他好文 时间:
2015-08-05 00:42:17
阅读次数:
131
类加载器与插件化解析2.1 类装载器 DexClassLoader首先,我们需要了解关于java代码本地import的一些知识:
import中所引用的类有两个特点:
1.必须存在于本地,当程序运行时需要该类时,内部类装载器会自动装载该类,这对程序员来讲是透明的,即程序员感知不到该过程
2.编译时必须在现场,否则编译过程会因为找不到引用文件而不能正常编译。使用ClassLoader的必要说明,...
分类:
其他好文 时间:
2015-08-04 13:40:20
阅读次数:
1779
8-4日总结-------------------牛客网:一:错题 1: tomcat为每个App创建一个Loader,里面保存着此WebApp的ClassLoader。需要加载WebApp下的类时,就取出ClassLoader来使用 Solve:tomcat的原理-类加载器:看《深入web分析.....
分类:
其他好文 时间:
2015-08-04 09:19:46
阅读次数:
522
1. 系统加载器简介
Java虚拟机中可以安装多个类加载器,系统默认三个主要类加载器(BootStrap、ExtClassLoader、AppClassLoader),每个类加载器负责加载特定位置的类。
类加载器本身也是Java类(BootStrap除外),因为它本身也要被类加载器加载,这样显然一定有第一个类加载器不是Java类,没错,正是BootStrap类加载器。它是由C++语...
分类:
编程语言 时间:
2015-07-29 19:23:29
阅读次数:
146
Java虚拟机类加载过程是把Class类文件加载到内存,并对Class文件中的数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的java类型的过程。
在加载阶段,java虚拟机需要完成以下3件事:
a.通过一个类的全限定名来获取定义此类的二进制字节流。
b.将定义类的二进制字节流所代表的静态存储结构转换为方法区的运行时数据结构。
c.在java堆中生成一个代表该类的java.l...
分类:
编程语言 时间:
2015-07-28 10:59:45
阅读次数:
110
类的生命周期
当Sample类被加载、连接和初始化后,它的生命周期就开始了。
当代表Sample类的Class对象不再被引用,即不可触及时,Class对象就会结束生命周期,Sample类在方法区内的数据也会被卸载,从而结束Sample类的生命周期。
由此可见,一个类何时结束生命周期,取决于代表它的Class对象何时结束生命周期。
引用关系
加载器和Class对象:
...
分类:
其他好文 时间:
2015-07-28 10:57:13
阅读次数:
117
什么是类加载器?类加载器(class loader)用来加载 Java 类到 Java 虚拟机中。一般来说,Java 虚拟机使用 Java 类的方式如下:Java 源程序(.java 文件)在经过 Java 编译器编译之后就被转换成 Java 字节代码(.class 文件)。类加载器负责读取 Java 字节代码,并转换成 java.lang.Class类的一个实例。每个这样的实例用来表示一个...
分类:
编程语言 时间:
2015-07-26 17:20:49
阅读次数:
217
类加载器
类加载定义:通过一个类的全限定名来获取描述此类的二进制流来获取所需要的类的动作
类从被加载到虚拟机内存中开始,到卸载出内存生命周期分为以下7个阶段:
加载(Loading) -> 【验证(Verification) -> 准备(Preparation) -> 解析(Resolut...
分类:
其他好文 时间:
2015-07-25 00:16:00
阅读次数:
152