动态构造 Java 类的一种方法: ClassLoader 的设计 (4)

原创 2007年09月26日 11:48:00

http://blog.csdn.net/loveyly/archive/2007/09/21/1794927.aspx 第一部分
http://blog.csdn.net/loveyly/archive/2007/09/21/1794971.aspx 第二部分
http://blog.csdn.net/loveyly/archive/2007/09/25/1799733.aspx 第三部分

对于ClassLoader 的设计, 可以按照如下的思路进行:
1. 首先检测缓存中是否存在该className的key(注意是存在key, 可以参考我以前的一片文章http://blog.csdn.net/loveyly/archive/2007/09/19/1791577.aspx), 如果存在, 则直接返回;
2. 否则使用 parent ClassLoader (一般是当前线程的上下文ClassLoader)查找该类, 如果找到, 放入缓存, 返回;
3. 如果没有, 使用获取对象描述, 使用javassist动态构造类, 并使用本ClassLoader 实例装载该类, 然后返回;
4. 实现一个destroy 方法, 负责清空缓存并调用 Introspector.flushCaches() (负责清空bean的一些缓存).

当更新一个对象描述时, 需要重新使用一个 ClassLoader 实例, 并调用先前的ClassLoader的destroy方法, 让其被垃圾回收. 

变种 Builder 模式:优雅的对象构建方式

读完本文你将了解到: 帅气的 Builder 链式调用 常见的两种构建方式 常见的构建方式之一定义多个重载的构造函数 常见的构建方式之二使用 setter 方法挨个构造 优雅的构建方式变种 Build...
  • u011240877
  • u011240877
  • 2016年11月21日 00:40
  • 4515

JAVA单例模式:就是把构造方法弄成私有的

一.问题引入   偶然想想到的如果把Java的构造方法弄成private,那里面的成员属性是不是只有通过static来访问呢;如果构造方法是private的话,那么有什么好处呢;如果构造方法是pri...
  • LoveStudy_girl
  • LoveStudy_girl
  • 2016年06月22日 17:15
  • 4083

3. 定义一个分数类(Fraction) 实例变量:分子,分母 方法:初始化方法(2个参数),便利构造器,约分,打印,加,减,乘,除。

3. 定义一个分数类(Fraction) 实例变量:分子,分母 方法:初始化方法(2个参数),便利构造器,约分,打印,加,减,乘,除。 ...
  • qq_22157341
  • qq_22157341
  • 2015年10月06日 10:49
  • 1499

字节码操作_javassist库_动态创建新类_属性_方法_构造器_API详解JAVA216-217

字节码操作_javassist库_动态创建新类_属性_方法_构造器_API详解JAVA216-217
  • u013292493
  • u013292493
  • 2016年04月02日 23:57
  • 1960

Java基础-构造函数,覆写父类方法,多态及动态绑定,抽象类和Object类的运用

Java构造函数,覆写父类方法,多态及动态绑定,抽象类和Object类的运用
  • wanlong360599336
  • wanlong360599336
  • 2017年02月28日 13:46
  • 238

关于java中子类,父类中,静态代码块: staic{},动态代码块:{},构造方法,类属性,对象属性等执行顺序做个总结:

关于java中子类,父类中,静态代码块: staic{},动态代码块:{},构造方法,类属性,对象属性等执行顺序做个总结:...
  • hellohm_ndsc
  • hellohm_ndsc
  • 2014年12月19日 17:18
  • 535

java后台构造easyui的tree数据的一种方法

最近在用easyui做一个权限管理系统,需要用到tree,后台构造json数据的时候总是不能很好的适应各种 情况,于是上网看了很多的例子,有几个能用,效率也比自己写的高,然后再加上自己的的业务需求改写...
  • u013160932
  • u013160932
  • 2015年02月11日 08:56
  • 1548

Java运行时动态加载类之ClassLoader加载class及其依赖jar包

需求场景是:通过ClassLoader动态加载外部class文件,class文件又依赖某个具体jar包,需要动态加载jar包,采用URLClassLoader。 1、xml配置文件 ...
  • fjssharpsword
  • fjssharpsword
  • 2017年03月23日 12:00
  • 3421

一种新的动态信道化接收机设计方法

  • 2013年10月28日 09:59
  • 1.06MB
  • 下载

Java - 类 - 对象 - 方法 - 构造器 - 面向对象程序设计三大特性

面向对象程序设计 面向对象 Object Oriented 简称OO 面向对象程序设计 Object Oriented Programming 简称OOP 面向过程和面向对象 面向过程:操纵数...
  • itlwc
  • itlwc
  • 2013年08月20日 09:15
  • 1560
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:动态构造 Java 类的一种方法: ClassLoader 的设计 (4)
举报原因:
原因补充:

(最多只允许输入30个字)