Tag Archive for class
JVM探险之Class Loader类的查找
转载自:http://www.blogjava.net/zhvfeng/archive/2010/08/17/329078.html
众所周知,所有的Java class文件都是由JVM(虚拟机)加载并执行的。深入理解JVM对于我们提高Java技术和解决Java问题都有非常大的帮助。
JVM内部主要包括内存管理和Class Loader(类加载器)两个部分。熟悉了内存管理,我们就会清楚程序在内存中是怎么分配和执行的,就能解决所有和对象相关的问题(比如Memory Leak)。理解了Class Loader,就能解决所有类找不到(比如遇到NoClassDefFoundError或ClassNotFoundException)或配置文件找不到问题。
这次我们只讨论JVM的Class Loader,下次再讨论JVM的内存管理。
Class Loader的主要作用就是负责查找类并将其加载到内存中。有趣的是,Java中的Class Loader也是由Java所写,就和普通的class一样。这就产生了一个是鸡生蛋还是蛋生鸡的问题,到底第一个class由谁来加载呢?我们稍后会来讨论这个问题。
先来看一下Class Loader所具有的特点。
1. 继承关系
虽然Class Loader也是一个Java class,但这里的继承不是指定义class时使用的extends关键字来实现的继承,而是指由属性来维持的继承关系。即通过Class Loader的构造方法或其它方法显式的设置一个父Class Loader。
