当前位置:首页 » 软件开发
开发技术指南» 文章正文
    引言: Java虚拟机类装载:原理、实现与应用 作者:刘学超 一、引言 Java虚拟机(JVM)的类装载就是指将包含在类文件中的字节码装载到JVM中, 并使其成为JVM一部分的过程。
 

 

    摘要: java工具之javadoc和jar1,javadoc注释标记 /** */格式如:/***title:killer类<br>*@author killer*@version 1.00*/其中<br>表示换行,但是有@标志会自动换行下来对killer构造方法批注/***这是killer类的构造函数*@param name killer的名字*/其中@param <参......
 ·jar详解 选择自 ginger547 的 blog    »显示摘要«
    摘要: jar文件听说过吗,没有?或者陌生!好,没关系,这就是我们的第一站:打包发布。     为什么会有这个玩意呢,首先,这是jar的全称:javatm archive (jar) file,是的,就是java存档文件。这有点类似zip文件,想一想它是干什么的用的呢,压缩!?没错就是要压缩,将我们原先零散的东西放到一下,重新组织,所有这些目的只有一个:方便!好了,不用管他是怎么压缩的,我们的重点是哪些......


Java虚拟机类装载:原理、实现与应用
java虚拟机类装载:原理.实现与应用

一.引言 【程序编程相关:快速上手 MySQL --图形化操作详解

作者:刘学超 【推荐阅读:『JSP学习——全面解析JDBC(6)』

二.java虚拟机的类装载实现与应用 【扩展信息:『JSP学习——全面解析JDBC(2)』

java虚拟机(jvm)的类装载就是指将包含在类文件中的字节码装载到jvm中, 并使其成为jvm一部分的过程.jvm的类动态装载技术能够在运行时刻动态地加载或者替换系统的某些功能模块, 而不影响系统其他功能模块的正常运行.本文将分析jvm中的类装载系统,探讨jvm中类装载的原理.实现以及应用.

2.1  装载过程简介

所谓装载就是寻找一个类或是一个接口的二进制形式并用该二进制形式来构造代表这个类或是这个接口的class对象的过程,其中类或接口的名称是给定了的.当然名称也可以通过计算得到,但是更常见的是通过搜索源代码经过编译器编译后所得到的二进制形式来构造.

在java中,类装载器把一个类装入java虚拟机中,要经过三个步骤来完成:装载.链接与初始化,其中链接又可以分成校验.准备与解析三步,除了解析外,其它步骤是严格按照顺序完成的,各个步骤的主要工作如下:

装载:查找与导入类或接口的二进制数据; 链接:执行下面的校验.准备与解析步骤,其中解析步骤是可以选择的; 校验:检查导入类或接口的二进制数据的正确性; 准备:给类的静态变量分配并初始化存储空间; 解析:将符号引用转成直接引用; 初始化:激活类的静态变量的初始化java代码与静态java代码块. 至于在类装载与虚拟机启动的过程中的具体细节与可能会抛出的错误,请参看«java虚拟机规范»以及«深入java虚拟机»,它们在网络上面的资源地址是: http://java.sun.com/docs/books/vmspec/2nd-edition/html/preface.doc.html 与 http://www.artima.com/insidejvm/ed2/index.html. 由于本文的讨论重点不在此就不再多叙述.

2.2  装载的实现

jvm中类的装载是由classloader与它的子类来实现的,java classloader 是一个重要的java运行时系统组件.它负责在运行时查找与装入类文件的类.

在java中,classloader是一个抽象类,它在包java.lang中,可以这样说,只要了解了在classloader中的一些重要的方法,再结合上面所介绍的jvm中类装载的具体的过程,对动态装载类这项技术就有了一个比较大概的掌握,这些重要的方法包括以下几个:

①loadcass方法  loadclass(string name ,boolean resolve)其中name参数指定了jvm需要的类的名称,该名称以包表示法表示,如java.lang.object;resolve参数告诉方法是否需要解析类,在初始化类之前,应考虑类解析,并不是所有的类都需要解析,如果jvm只需要知道该类是否存在或找出该类的超类,那么就不需要解析.这个方法是classloader 的入口点.


...   下一页
    摘要: eclispe想必大家都很熟悉了,一般来说,eclipse插件都是安装在plugins目录下。不过这样一来,当安装了许多插件之后,eclipse变的很大,最主要的是不便于更新和管理众多插件。用links方式安装eclipse插件,可以解决这个问题。 当前配置xp sp1,eclipse3.0.1 现在假设我的eclipse安装目录是d:\eclipse,待安装插件目录是d:\plug......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE