DJ音乐盒 | 外置伴侣 | MC词宝盒| SAM机架 | kx3552驱动

一键电音、kx驱动,主播音效软件商业定做

野狼音频科技

咨询QQ:136677098

野狼音频科技软件园

java类加载器

作者:野狼音频科技   时间:2015-02-02    浏览:

类的加载过程

JVM将类加载过程分为三个步骤

装载,连接,初始化,连接又分为三个步骤如下:

JVM将类加载过程分为三个步骤:装载(Load),链接(Link)和初始化(Initialize)链接又分为三个步骤,如下图所示:

\

1)装载:查找并加载类的二进制数据;

2)链接:

 

验证:确保被加载类的正确性;准备:为类的静态变量分配内存,并将其初始化为默认值;解析:把类中的符号引用转换为直接引用;

<喎�"http://www.2cto.com/kf/ware/vc/" target="_blank" class="keylink">vcD4KPHA+Mymz9cq8u6+jus6qwOC1xL6yzKyx5MG/uLPT6NX9yLe1xLP1yrwmIzIwNTQwO6O7PC9wPgo8cD4gICAgICAgICDEx86qyrLDtM7S0qrT0NHp1qTV4tK7sr3W6MTYo7/K18/IyOe5+9PJseDS68b3yfqzybXEY2xhc3POxLz+o6zL/L/PtqjKx7f7us9KVk3X1r3awusmIzI2Njg0O8q9tcSjrLWrysfN8tK709C438rW19S8utC00ru49mNsYXNzzsS8/qOsyMNKVk2809TYsqLUy9DQo6zTw9PatvHS4tPDzb6jrL7NsrvD7sHLo6zS8rTL1eK49mNsYXNzzsS8/tKqz8i5/dHp1qTV4tK7udijrLK7t/u6z7XEu7Cyu7vhyMPL/LzM0PjWtNDQtcSjrNKyysfOqsHLsLLIq7+8wsewyaGjPC9wPgo8cD4gICAgICAg17yxuL3Xts66zbP1yry7r73Xts6/tCYjMjAyODQ709C148SyttyjrMbkyrXKx7K7xLK23LXEo6zI57n7wODW0NPQ0+++5KO6cHJpdmF0ZSBzdGF0aWMKIGludCBhID0gMTCjrMv8tcTWtNDQuf2zzMrH1eLR+bXEo6zK18/I19a92sLrzsS8/rG7vNPU2LW9xNq05rrzo6zPyL340NDBtL3TtcTR6dak1eLSu7K91uijrNHp1qTNqLn9uvPXvLG4vde2zqOsuPhht9bF5MTatOajrNLyzqqx5MG/YcrHc3RhdGljtcSjrMv50tS0y8qxYbXI09ppbnTA4NDNtcTErMjPs/XKvCYjMjA1NDA7MKOsvLRhPTAsyLu687W9veLO9qOouvPD5tTay7WjqaOstb2z9cq8u6/V4tK7sr3W6Mqxo6yyxbDRYbXE1ebV/bXEJiMyMDU0MDsxMLizuPhhLLTLyrFhPTEwoaM8L3A+CjxwPjxicj4KPC9wPgo8aDI+IMDgtcSz9cq8u688L2gyPgo8cD4gwODKssO0yrG68rLFsbuz9cq8u6+jujwvcD4KPHA+PC9wPgoKMaOptLS9qMDgtcTKtcD9o6zSsr7NysduZXfSu7j2ttTP8zKjqbfDzsrEs7j2wOC78r3Tv9q1xL6yzKyx5MG/o6y78tXfttS4w76yzKyx5MG/uLMmIzIwNTQwOzOjqbX308PA4LXEvrLMrLe9t6g0o6m3tMnko6hDbGFzcy5mb3JOYW1lKA=="com.lyj.load"))5)初始化一个类的子类(会首先初始化子类的父类)6)JVM启动时标明的启动类,即文件名和类名相同的那个类

 

只有这6中情况才会导致类的类的初始化。

 

类的加载

启动JVM的时候,可以使用三个类加载器:引导(bootstarp)类加载器,扩展(extensions)类加载器,应用程序(application)类加载器。

 

引导类加载器:仅仅负责加载核心的Java库,比如位于/jre/lib目录下的vm.jar,core.jar。这个类加载器,是JVM核心部分,是用native代码写成的。

扩展类加载器:负责加载扩展路径下的代码,一般位于/jre/lib/ext或者通过java.ext.dirs这个系统属性指定的路径下的代码。这个类加载器是由sun.misc.Launcher$ExtClassLoader实现的。

应用类加载器: 一般来说,Java应用的类都是由它来完成加载的。可以通过 ClassLoader.getSystemClassLoader()来获取它。

如果应用程序类加载器需要加载一个类,它首先委托扩展类加载器,扩展类加载器再委托引导类加载器。如果父类加载器不能加载类,子类加载器就回在自己的库中查找这个类。基于这个特性,类加载器只负责它的祖先无法加载的类。

小结:

类加载器是java的一个创新,基本上所有的类加载器都是用java.ClassLoaderler加载的一个实例。基本目的是帮助我们理解对象的实例化过程以及对象的调用。

野狼音频科技软件园