易截截图软件、单文件、免安装、纯绿色、仅160KB

理解Java类加载原理

第一部分. 提示
我需要读这篇文章吗?
Java类加载器对Java系统的运行是至关重要的,但是却常常被我们忽略。Java类加载器负载
在运行时查找和加载类。自定义类加载器可以完全改变类的加载方式,以自己喜欢的方式来
个性化你的Java虚拟机。本文简要的介绍Java类加载器,然后通过一个构造自定义类加载器
的例子来说明,这个类加载器在加载类前会自动编译代码。你将学到类加载器到底是干什么
的,如何创建你自己的类加载器。只要你有一些基本的Java知识,知道如何创建、编译、运
行一个命令行Java程序以及一些Java类文件的基本概念,你就可以理解本文的内容了。读完
本文,你应该能够:
* 扩张Java虚拟机的功能
* 创建一个自定义的类加载器
* 如何把自定义的类加载器整合到你的应用程序中
* 修改你的类加载器以兼容Java2
第二部分. 简介
类加载器是什么?
Java和其他语言不同的是,Java是运行于Java虚拟机(JVM)。这就意味着编译后的代码是以
一种和平台无关的格式保存的,而不是某种特定的机器上运行的格式。这种格式和传统的可
执行代码格式有很多重要的区别。具体来说,不同于C或者C++程序,Java程序不是一个独
立的可执行文件,而是由很多分开的类文件组成,每个类文件对应一个Java类。 另外,这
些类文件并不是马上加载到内存,而是当程序需要的时候才加载。 类加载器就是Java虚拟
机中用来把类加载到内存的工具。而且,Java类加载器也是用Java实现的。这样你就不需要
对Java虚拟机有深入的理解就可以很容易创建自己的类加载器了。
为什么要创建类加载器?
既然Java虚拟金已经有了类加载器,我们还要自己创建其他的呢?问得好。默认的类加载器
只知道如何从本地系统加载类。当你的程序完全在本机编译的话,默认的类加载器一般都工
作的很好。但是Java中最激动人心的地方之一就是很容易的从网络上而不只是本地加载类。
举个例子,浏览器可以通过自定义的类加载器加载类。 还有
很多加载类的方式。除了简单的从本地或者网络外,你还可以通过自定义Java中最激动人心
的地方之一:
* 执行非信任代码前自动验证数字签名
* 根据用户提供的密码解密代码
* 根据用户的需要动态的创建类
你关心的任何东西都能方便的以字节码的形式集成到你的应用中
自定义类加载器的例子
如果你已经使用过JDK(Java软件开发包)中的appletviewer(小应用程序浏览器)或者其他
Java嵌入式浏览器,你就已经使用了自定义类加载器了。Sun刚刚发布Ja


相关文档:

java入门

 Java学习从入门到精通 
一、 JDK (Java Development Kit) 
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......

Java打包成可执行文件步骤详解

核心思想:把含main方法的入口类添加到MANIFEST.MF文件中。
步骤:
假设有两个类文件要打包,它们分别属于不同的package。
package com.test.jar;   
import java.awt.*;   
import javax.swing.*;   
public class Jar extends JFrame   
{  ......

使用 Java 对 Linux 下文件编码格式进行批量转换

使用 Java 对 Linux 下文件编码格式进行批量转换
        测试使用说明:
        1。将 字符集编码格式为 GB2312 的文件 test0.java,test1.java,test2.java 放在 /home/defonds/tmp/test 目录下(test0.java,test1.java,test2.java 作者可以 ......

JAVA定时执行任务

Tomcat 下的定时任务
SysContextListener.java
package axtic.servlet;
import java.util.Timer;//定时器类
import axtic.bean.exportHistoryBean;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class SysContextListener implements ServletContextListener
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号