一、Java泛型
为岐山等地区用户提供了全套网页设计制作服务,及岐山网站建设行业解决方案。主营业务为网站设计制作、网站设计、岐山网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
Apache Commons Pool2源码中用到了很多泛型的知识,这里我们回顾一下泛型,以便于我们更好的阅读后续的源码。
1. 什么是泛型?
简而言之,泛型可以在定义类,接口和方法时使类型(类和接口)成为参数。类似在方法声明中使用的形式参数。
2. Java泛型标记符
3. Object与这些标记符代表的Java类型有啥区别呢?
Object是所有类的根类,任何类的对象都可以设置给该Object引用变量,使用的时候可能需要类型强制转换,但是用使用了泛型T、E等这些标识符后,在实际用之前类型就已经确定了,不需要再进行类型强制转换。
4. 官方参考
可以肯定的说,上面介绍的知识,在论坛和博客中都可以搜索到,但是大家有没有想过,那些发布博客的人从哪里获取这些泛型的知识呢?书是一个渠道,更重要的是官方的文档参考,如果英文不错我强烈建议大家看官网的原版说明,从这些官方的技术文档中,你可以获得很多意想不到的知识。http://docs.oracle.com/javase/tutorial/java/generics/index.html这个地址是Oracle官网关于Java泛型的说明,建议大家有空阅读阅读。
二、初识Pool2
回顾了Java泛型,我们来认识一下Apache Commons Pool2吧,既然是先认识一下,与了解一个人是一样的,就是多接触,自然就会加深印象。对于代码我们怎么接触呢?那自然是demo了,一个小小的demo可以帮助我们了解,加深印象。我们来拆解一下Pool2的demo吧。
1. 准备demo环境
2. 从池中拿到StringBuffer,用完后放回池中
PS:一般情况下第14行代码,需要初始化一个buf=new StringBuffer(),而这里赋值为null,在第16行处直接从pool中获取StringBuffer,不再初始化,使用完毕后在第29行放回pool,这里把StringBuffer当成pool中的一种资源来使用,当然现实中使用StringBuffer直接初始化即可,不需要使用pool,可以展开想象,如果把StringBuffer换成jdbc连接,那不就是jdbc连接池了吗?
3. 定义StringBufferFactory,根据需要覆盖池中对象的生命周期方法
PS:PooledObjectFactory接口定义了池中对象的生命周期方法。 实现PoolableObjectFactory的最简单的方法是扩展BasePooledObjectFactory。StringBufferFactory是一个BasePooledObjectFactory实现,用来创建如上要用的StringBuffer对象。
4. 结合并测试
PS:我们传递StringBufferFactory给GenericObjectPool这个工厂来实例化我们的ReaderUtil。
从这个简单的demo可知,Pool2充当资源池,来管理StringBuffer这种对象资源。
【本文为专栏作者“朱国立”的原创稿件,转载请通过作者微信公众号“开发者圆桌”获取联系和授权】
戳这里,看该作者更多好文
本文题目:通过一个小小的demo带你认识Pool2
本文来源:http://www.shufengxianlan.com/qtweb/news27/186877.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联