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

java classLoader 体系结构

jvm classLoader architecture:
1. Bootstrap ClassLoader/启动类加载器
主要负责jdk_home/lib目录下的核心 api 或 -Xbootclasspath 选项指定的jar包装入工作。
2. Extension ClassLoader/扩展类加载器
主要负责jdk_home/lib/ext目录下的jar包或 -Djava.ext.dirs 指定目录下的jar包装入工作。
3. System ClassLoader/系统类加载器
主要负责java -classpath/-Djava.class.path所指的目录下的类与jar包装入工作。
4. User Custom ClassLoader/用户自定义类加载器(java.lang.ClassLoader的子类)
在程序运行期间, 通过java.lang.ClassLoader的子类动态加载class文件, 体现java动态实时类装入特性。
类加载器的特性:
1. 每个ClassLoader都维护了一份自己的名称空间, 同一个名称空间里不能出现两个同名的类。
2. 为了实现java安全沙箱模型顶层的类加载器安全机制, java默认采用了 " 双亲委派的加载链 " 结构。
classloader-architecture
classloader-architecture
classloader-class-diagram
classloader-class-diagram
类图中, BootstrapClassLoader是一个单独的java类, 其实在这里, 不应该叫他是一个java类。因为,它已经完全不用java实现了。它是在jvm启动时, 就被构造起来的, 负责java平台核心库。
自定义类加载器加载一个类的步骤
classloader-load-class
classloader-load-class
ClassLoader 类加载逻辑分析, 以下逻辑是除 BootstrapClassLoader 外的类加载器加载流程:
1. // 检查类是否已被装载过
2. Class c = findLoadedClass(name);
3. if (c == null ) {
4. // 指定类未被装载过
5. try {
6. if (parent != null ) {
7. // 如果父类加载器不为空, 则委派给父类加载
8. c = parent.loadClass(name, false );
9. } else {
10. // 如果父类加载器为空, 则委派给启动类加载加载
11. c = findBootstrapClass0(name);
12. }
13. } catch (ClassNotFoundException e) {
14. // 启动类加载器或父类加载器抛出异常后, 当前类加载器将其
15. // 捕获, 并通过findClass方法, 由自身加载
16. c = findClass(name);
17. }
18.


相关文档:

excel java 实例

POIFSFileSystem fs=new POIFSFileSystem(new   FileInputStream(cfname));  
                 HSSFWorkbook   wb   =   new   HSSFWorkbook(fs);  
  ......

java实现验证码

java验证码的实现(一)
收藏



1.ImageServlet类的实现:
package com.mobile.control;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.image.BufferedImage;
import java.io.IOExcep ......

Zlib压缩算法在java上的应用

JAVA实现
  在JDK中,在java.util.zip包中已经内置了ZLIB的实现,示例代码如下:
1//解压
2 public String decompressData(String encdata) {
3 try {
4 ByteArrayOutputStream bos = new ByteArrayOutputStream(); 
5 InflaterOutputStream zos = new InflaterOutputStream(bos); 
6 zo ......

Ubuntu下java环境配置

一、给Ubuntu配置JAVA环境 
  
  操作系统版本:Ubuntu 7.10 Gutsy 
  
  JAVA版本:JAVA 6 
  
  在Ubuntu下安装JAVA虚拟机和SDK(开发包)是非常轻松容易的: 
  
  联网的情况下在终端下输入命令 
  
  $sudo apt-get& ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号