新聞中心
一、Java泛型

為岐山等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及岐山網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計、岐山網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
Apache Commons Pool2源碼中用到了很多泛型的知識,這里我們回顧一下泛型,以便于我們更好的閱讀后續(xù)的源碼。
1. 什么是泛型?
簡而言之,泛型可以在定義類,接口和方法時使類型(類和接口)成為參數(shù)。類似在方法聲明中使用的形式參數(shù)。
2. Java泛型標記符
- E - Element (在集合中使用,因為集合中存放的是元素)
- T - Type(Java 類)
- K - Key(鍵)
- V - Value(值)
- N - Number(數(shù)值類型)
- ? - 表示不確定的Java類型
- S、U、V - 2nd、3rd、4th types
3. Object與這些標記符代表的Java類型有啥區(qū)別呢?
Object是所有類的根類,任何類的對象都可以設(shè)置給該Object引用變量,使用的時候可能需要類型強制轉(zhuǎn)換,但是用使用了泛型T、E等這些標識符后,在實際用之前類型就已經(jīng)確定了,不需要再進行類型強制轉(zhuǎn)換。
4. 官方參考
可以肯定的說,上面介紹的知識,在論壇和博客中都可以搜索到,但是大家有沒有想過,那些發(fā)布博客的人從哪里獲取這些泛型的知識呢?書是一個渠道,更重要的是官方的文檔參考,如果英文不錯我強烈建議大家看官網(wǎng)的原版說明,從這些官方的技術(shù)文檔中,你可以獲得很多意想不到的知識。http://docs.oracle.com/javase/tutorial/java/generics/index.html這個地址是Oracle官網(wǎng)關(guān)于Java泛型的說明,建議大家有空閱讀閱讀。
二、初識Pool2
回顧了Java泛型,我們來認識一下Apache Commons Pool2吧,既然是先認識一下,與了解一個人是一樣的,就是多接觸,自然就會加深印象。對于代碼我們怎么接觸呢?那自然是demo了,一個小小的demo可以幫助我們了解,加深印象。我們來拆解一下Pool2的demo吧。
1. 準備demo環(huán)境
2. 從池中拿到StringBuffer,用完后放回池中
PS:一般情況下第14行代碼,需要初始化一個buf=new StringBuffer(),而這里賦值為null,在第16行處直接從pool中獲取StringBuffer,不再初始化,使用完畢后在第29行放回pool,這里把StringBuffer當(dāng)成pool中的一種資源來使用,當(dāng)然現(xiàn)實中使用StringBuffer直接初始化即可,不需要使用pool,可以展開想象,如果把StringBuffer換成jdbc連接,那不就是jdbc連接池了嗎?
3. 定義StringBufferFactory,根據(jù)需要覆蓋池中對象的生命周期方法
PS:PooledObjectFactory接口定義了池中對象的生命周期方法。 實現(xiàn)PoolableObjectFactory的最簡單的方法是擴展BasePooledObjectFactory。StringBufferFactory是一個BasePooledObjectFactory實現(xiàn),用來創(chuàng)建如上要用的StringBuffer對象。
4. 結(jié)合并測試
PS:我們傳遞StringBufferFactory給GenericObjectPool這個工廠來實例化我們的ReaderUtil。
從這個簡單的demo可知,Pool2充當(dāng)資源池,來管理StringBuffer這種對象資源。
【本文為專欄作者“朱國立”的原創(chuàng)稿件,轉(zhuǎn)載請通過作者微信公眾號“開發(fā)者圓桌”獲取聯(lián)系和授權(quán)】
戳這里,看該作者更多好文
新聞名稱:通過一個小小的demo帶你認識Pool2
分享網(wǎng)址:http://www.5511xx.com/article/djphgpp.html


咨詢
建站咨詢
