日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢(xún)
選擇下列產(chǎn)品馬上在線(xiàn)溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
通過(guò)一個(gè)小小的demo帶你認(rèn)識(shí)Pool2

一、Java泛型

為岐山等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及岐山網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為網(wǎng)站設(shè)計(jì)制作、網(wǎng)站設(shè)計(jì)、岐山網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

Apache Commons Pool2源碼中用到了很多泛型的知識(shí),這里我們回顧一下泛型,以便于我們更好的閱讀后續(xù)的源碼。

1. 什么是泛型?

簡(jiǎn)而言之,泛型可以在定義類(lèi),接口和方法時(shí)使類(lèi)型(類(lèi)和接口)成為參數(shù)。類(lèi)似在方法聲明中使用的形式參數(shù)。

2. Java泛型標(biāo)記符

  • E - Element (在集合中使用,因?yàn)榧现写娣诺氖窃?
  • T - Type(Java 類(lèi))
  • K - Key(鍵)
  • V - Value(值)
  • N - Number(數(shù)值類(lèi)型)
  • ? - 表示不確定的Java類(lèi)型
  • S、U、V - 2nd、3rd、4th types

3. Object與這些標(biāo)記符代表的Java類(lèi)型有啥區(qū)別呢?

Object是所有類(lèi)的根類(lèi),任何類(lèi)的對(duì)象都可以設(shè)置給該Object引用變量,使用的時(shí)候可能需要類(lèi)型強(qiáng)制轉(zhuǎn)換,但是用使用了泛型T、E等這些標(biāo)識(shí)符后,在實(shí)際用之前類(lèi)型就已經(jīng)確定了,不需要再進(jìn)行類(lèi)型強(qiáng)制轉(zhuǎn)換。

4. 官方參考

可以肯定的說(shuō),上面介紹的知識(shí),在論壇和博客中都可以搜索到,但是大家有沒(méi)有想過(guò),那些發(fā)布博客的人從哪里獲取這些泛型的知識(shí)呢?書(shū)是一個(gè)渠道,更重要的是官方的文檔參考,如果英文不錯(cuò)我強(qiáng)烈建議大家看官網(wǎng)的原版說(shuō)明,從這些官方的技術(shù)文檔中,你可以獲得很多意想不到的知識(shí)。http://docs.oracle.com/javase/tutorial/java/generics/index.html這個(gè)地址是Oracle官網(wǎng)關(guān)于Java泛型的說(shuō)明,建議大家有空閱讀閱讀。

二、初識(shí)Pool2

回顧了Java泛型,我們來(lái)認(rèn)識(shí)一下Apache Commons Pool2吧,既然是先認(rèn)識(shí)一下,與了解一個(gè)人是一樣的,就是多接觸,自然就會(huì)加深印象。對(duì)于代碼我們?cè)趺唇佑|呢?那自然是demo了,一個(gè)小小的demo可以幫助我們了解,加深印象。我們來(lái)拆解一下Pool2的demo吧。

1. 準(zhǔn)備demo環(huán)境

2. 從池中拿到StringBuffer,用完后放回池中

PS:一般情況下第14行代碼,需要初始化一個(gè)buf=new StringBuffer(),而這里賦值為null,在第16行處直接從pool中獲取StringBuffer,不再初始化,使用完畢后在第29行放回pool,這里把StringBuffer當(dāng)成pool中的一種資源來(lái)使用,當(dāng)然現(xiàn)實(shí)中使用StringBuffer直接初始化即可,不需要使用pool,可以展開(kāi)想象,如果把StringBuffer換成jdbc連接,那不就是jdbc連接池了嗎?

3. 定義StringBufferFactory,根據(jù)需要覆蓋池中對(duì)象的生命周期方法

PS:PooledObjectFactory接口定義了池中對(duì)象的生命周期方法。 實(shí)現(xiàn)PoolableObjectFactory的最簡(jiǎn)單的方法是擴(kuò)展BasePooledObjectFactory。StringBufferFactory是一個(gè)BasePooledObjectFactory實(shí)現(xiàn),用來(lái)創(chuàng)建如上要用的StringBuffer對(duì)象。

4. 結(jié)合并測(cè)試

PS:我們傳遞StringBufferFactory給GenericObjectPool這個(gè)工廠(chǎng)來(lái)實(shí)例化我們的ReaderUtil。

從這個(gè)簡(jiǎn)單的demo可知,Pool2充當(dāng)資源池,來(lái)管理StringBuffer這種對(duì)象資源。

【本文為專(zhuān)欄作者“朱國(guó)立”的原創(chuàng)稿件,轉(zhuǎn)載請(qǐng)通過(guò)作者微信公眾號(hào)“開(kāi)發(fā)者圓桌”獲取聯(lián)系和授權(quán)】

戳這里,看該作者更多好文


網(wǎng)站名稱(chēng):通過(guò)一個(gè)小小的demo帶你認(rèn)識(shí)Pool2
網(wǎng)頁(yè)網(wǎng)址:http://m.5511xx.com/article/djphgpp.html