posts - 12, comments - 4, trackbacks - 0, articles - 0

ClassLoader笔记

Posted on 2008-02-28 16:09 Edward's 阅读(261) 评论(0)  编辑  收藏

ClassLoader笔记
显示运行时ClassLoader的信息:-verbose:class
dynamic语句块,在执行构造方法之前执行。每次都会执行

 {
  System.out.println(
"test dynamic");
 }

static语句块,在Class加载后执行一次

 static{
  System.out.println(
"test static");
 }

 

JDK内置ClassLoader
bootstrap class loader(启动运行的classloader)
     implemented by native language
     load the core classes of jdk
extesion class loader(扩展的classloader)
     loader the class from jre/lib/ext
application class loader(运用程序的classloader)
     load user-define classes
     ClassLoader.getSystemClassLoader()
other class loader(其他classloader)
     SecureClassLoader
     URIClassLoader

启动过程是这样的:
     首先bootstrap class loader把其他的classloader加载进来
     (extesion class loader ---> application class loader ---> other class loader)
     然后其他的classloader再loader其他的class

类加载的机制
从1.2版本开始,Java引入了双亲委托模型,从而更好的保证Java平台的安全。
在此模型下,当一个装载器被请求装载某个类时,
它首先委托自己的parent去装载,若parent能装载,则返回这个类所对应的Class对象,若parent不能装载,则由parent的请求者去装载。
若有一个能成功装载,实际装载的类装载器被称为定义类装载器,所有能成功返回Class对象的装载器(包括定义类装载器)被称为初始类装载器。


只有注册用户登录后才能发表评论。


网站导航: