您好,欢迎光临本网站![请登录][注册会员]  
文件名称: asm-guide.pdf
  所属分类: Java
  开发工具:
  文件大小: 1mb
  下载次数: 0
  上传时间: 2009-03-01
  提 供 者: tol****
 详细说明: 1,什么是ClassLoader 与 C 或 C++ 编写的程序不同,Java 程序并不是一个可执行文件,而是由许多独立的类文件组成,每一个文件对应于一个 Java 类。 此外,这些类文件并非立即全部都装入内存,而是根据程序需要装入内存。ClassLoader 是 JVM 中将类装入内存的那部分。 而且,Java ClassLoader 就是用 Java 语言编写的。这意味着创建您自己的 ClassLoader 非常容易,不必了解 JVM 的微小细节。 2,一些重要的方法 A)loadClass ClassLoader.loadClass() 是ClassLoader的入口点。该方法的定义为:Class loadClass( String name, boolean resolve ); name:JVM 需要的类的名称,如 Foo 或 java.lang.Object。 resolve:参数告诉方法是否需要解析类。 B)defineClass defineClass方法是ClassLoader的主要诀窍。该方法接受由原始字节组成的数组并把它转换成Class对象。 C)findSystemClass findSystemC lass方法从本地文件系统中寻找类文件,如果存在,就使用defineClass将原始字节转换成Class对象,以将该文件转换成类。 D)resolveClass 可以不完全地(不带解析)装入类,也可以完全地(带解析)装入类。当编写我们自己的loadClass时可以调用resolveClass,这取决于loadClass的resolve参数的值。 E)findLoadedClass findLoadedClass充当一个缓存:当请求loadClass装入类时,它调用该方法来查看ClassLoader是否已装入这个类,这样可以避免重新装入已存在类所造成的麻烦。 3,Java2中ClassLoader的变动 1)loadClass的缺省实现 在Java2中loadClass的实现嵌入了大多数查找类的一般方法,并使您通过覆盖findClass方法来定制它,在适当的时候findClass会调用loadClass。 这种方式的好处是可能不一定要覆盖loadClass,只要覆盖findClass就行了,这减少了工作量。 2)新方法:findClass loadClass的缺省实现调用这个新方法。 3)新方法:getSystemClassLoader 如果覆盖findClass或loadClass,getSystemClassLoader让我们以实际ClassLoader对象来访问系统ClassLoader,而不是固定的从findSystemClass 调用它。 4)新方法:getParent 为了将类请求委托给父ClassLoader,这个新方法允许ClassLoader获取它的父ClassLoader。 4,定制ClassLoader 其实我们或多或少都使用过定制的ClassLoader,因为Applet查看器中就包含一个定制的ClassLoader。 它不在本地文件系统中寻找类,而是访问远程服务器上的 Web 站点,经过 HTTP 装入原始的字节码文件,并把它们转换成JVM 内的类。 Applet查看器中的ClassLoader还可以做其它事情:它们支持安全性以及使不同的Applet在不同的页面上运行而互不干扰。 我们将写一个自己的ClassLoader实现示例,它将实现如下步骤,这也是ClassLoader的工作原理: # 调用 findLoadedClass 来查看是否存在已装入的类。 # 如果没有,那么采用那种特殊的神奇方式来获取原始字节。 # 如果已有原始字节,调用defineClass将它们转换成Class对象。 # 如果没有原始字节,然后调用findSystemClass查看是否从本地文件系统获取类。 # 如果resolve参数是true,那么调用resolveClass解析Class对象。 # 如果还没有类,返回ClassNotFoundException。 # 否则,将类返回给调用程序。 ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: java asm
 输入关键字,在本站1000多万海量源码库中尽情搜索: