JAVA框架研究
springcsc1982
这个作者很懒,什么都没留下…
展开
-
对象池commons-pool框架的研究以及源代码分析(五)
再来看看Keyed类型的对象池, 先上类图:这图是不是很眼熟?您没有看错,我也没有贴错,Keyed类型的对象池跟普通的对象池基本上调用方式相同,类的结构也相同,唯一不同的是操作对象时需要键值,这样就可以把不同类型的对象,在同一个缓冲池中分类存储,先上一段演示代码:public static void main(String[] args) { Object obj原创 2013-04-22 19:17:21 · 1064 阅读 · 0 评论 -
对象池commons-pool框架的研究以及源代码分析(六)总结
对象池使用总结 (1) 对象池的基本原理,就是将频繁使用的对象进行缓存,并进行共享,避免每次释放资源与创建对象的开销。(2) 对象池必须用在创建与销毁消耗资源比较大的对象上才有效果,在简单对象上,效果不明显,反而把代码弄复杂了。(3) 常用的对象池主要有4种,基于堆栈的Object对象池、线程检测维护的对象池、软引用的对象池以及带key的对象池。(原创 2013-04-22 19:33:04 · 863 阅读 · 0 评论 -
数据库连接池DBCP框架的研究以及源代码分析一:第一个DBCP例子
数据库连接池是在commons-pool的基础上扩展来的,实际上很简单,就是把连接放在池中,以达到连接共享以及避免建立新连接以及关闭连接占用资源,当然,DBCP设计得很精妙,连Statement都可以进行放入池中缓存,研究这框架的代码,确实对我们学习设计很有好处,先来看看连接池怎么用,请看下面代码:/*** @param args* @throws IOException原创 2013-04-24 00:07:26 · 2394 阅读 · 0 评论 -
数据库连接池DBCP框架的研究以及源代码分析二:寻找真正的DataSource
从DataSourceFactory中,我们看到DataSourceFactory创建了一个DataBaseSource,如下代码 public static DataSource createDataSource(Properties properties) throws Exception { BasicDataSource dataSource = new原创 2013-04-24 22:15:37 · 1969 阅读 · 0 评论 -
数据库连接池DBCP框架的研究以及源代码分析三:打开AbandonedObjectPool连接池
前面,我们已经找到了真正的DataSource,这个类就是PoolingDataSource ,同时,也找到了对象状态维护工厂PoolableConnectionFactory目前不用急于往下看代码,如果再继续看,就容易晕,先从整体上思考一下,既然DBCP可以处理我们没有关闭的连接,那么,它的一定有自己的对象池,而且必须继承自GenericObjectPool,我们根据GenericObjec原创 2013-04-28 17:06:24 · 1461 阅读 · 0 评论 -
对象池commons-pool框架的研究以及源代码分析(二)
通过上一节的例子,我们使用了一个简单的对象池应用,现在再来看看其内部是如何实现的。先看看主要包括了哪些类:该包所有的类与接口不多,也就20个左右,虽然是一个小项目,其中接口与抽象类的数量,基本上与实现的类差不多,可以说明开发者是使用面向接口编程,而不是面向实现编程,对我们的开发工作有着指导意义,在开发中要尽量面向接口编程而非实现。把类整理一下,分成两类,一类是包括KEY的对象池,一类是原创 2013-04-21 11:23:17 · 1621 阅读 · 0 评论 -
对象池commons-pool框架的研究以及源代码分析(三)
看完了StackObjectPool 类之后,我们再来看另外的一个对象池实现,即SoftReferenceObjectPool类,在详细看这个代码之前,先了解一下SoftReference类:SoftReference:即对象的软引用,一个对象软引用后,如果虚拟机内存足够,垃圾回收线程就不会回收软引用对象的内存;与其相对应的是强引用,一个对象设置为强引用后,垃圾回收线程宁可报内存不足的错误,也原创 2013-04-21 16:27:03 · 1135 阅读 · 0 评论 -
对象池commons-pool框架的研究以及源代码分析(四)
编写了一个关于GenericObjectPool的测试方法,代码如下:public static void main(String[] args) throws Exception {// TODO Auto-generated method stubUserFactory userFactory = new commonPool2().new UserFactory();//内部类的原创 2013-04-21 22:00:56 · 1684 阅读 · 0 评论 -
对象池commons-pool框架的研究以及源代码分析(一)
对象池是一个对象集合,用于将创建好的对象存在该集合中,当需要使用池中的对象时,再从池中取出,恰当地使用对象池可以有效减少对象生成和初始化时的消耗,提高系统的运行效率。另外,利用对象池还可以对对象的状态做一定的维护,确保对象是可用的,提高程序的健壮性。注意:对象池技术,在用于一些创建需要占用大量时间上的对象特别明显,在一些小对象处理上,性能不一定有优势。Common Pool组件提供了一整套实现原创 2013-04-21 10:17:26 · 1782 阅读 · 0 评论