重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
這叫范型,或者泛型!主要用去規定你這個則鍵雀集合中出亮改現的數據類型!例子:一個彎孫早可以裝很多種食物,加上范型,比如是面,那么這個碗只能是裝上面這類的食物的!
站在用戶的角度思考問題,與客戶深入溝通,找到龍口網站設計與龍口網站推廣的解決方案,憑借多年的經驗,讓設計與互聯網技術結合,創造個性化、用戶體驗好的作品,建站類型包括:網站設計、成都做網站、企業官網、英文網站、手機端網站、網站推廣、主機域名、雅安服務器托管、企業郵箱。業務覆蓋龍口地區。
如果你用的是eclipse可以用快捷鍵來抽灶纖取方法的,就是檔團選中重行辯橘復的代碼,然后按alt+shift+m,就解決你的代碼重復問題。
public static Object getInnter(Object con){
Object re=null;
Field f;
try {
f = con getClass() getDeclaredField( inner )
f setAccessible(true)
re= f get(con) ???????????????? //取得內部包裝的Connection
f setAccessible(false)
} catch Exception e) {
}
return re;
}
以上代碼運行后 輸出
con Class Type is: mchange v c p impl NewProxyConnection
Inner con Class Type is: mysql jdbc JDBC Connection
Data from DB:
o and o is same object
Data from DB:
上述代碼中 首先從數據庫連接池獲得一個連接 發現連接類型并不是mysql的數據庫連接 而是 mchange v c p impl NewProxyConnection 根據類名中可以推測 從數據庫連接池中獲得的連接只是一個代理 接著 通過反射 取得這個對象中名為inner的屬性 并打印其Class類型 發現這才是真正的mysql連接 關閉NewProxyConnection連接 再向池中請求一個新的連接 同樣獲取該連接內部的實際數據庫連接對象 發現 第一次使用的實際數據庫連接對象o 和第二次使用的對象o 是完全相同的
這說明 前后兩次數據庫連接的請求均返回了相同的數據庫連接 關閉NewProxyConnection連接時 并沒有真正關閉數據庫連接 而只是將數據庫連接放入連接池保存 使得數據庫連接在連接池中得到了復用 而從連接池返回的NewProxyConnection對象 只是對真實數據庫連接的包裝
除了線程池和數衫友據攜腔庫連接池 對于普通的Java對象 在必或隱槐要的時候 也可以進行池化管理 對于那些經常使用 并且創建很費時的大型對象來說 使用對象池維護 不僅可以節省獲得對象實例的成本 還可以減輕GC頻繁回收這些對象產生的系統壓力 但對于生成對象開銷很小的對象進行池化 反而可能得不償失 維護對象池的成本可能會大于對象池帶來的好處
注意 在JDK中 new操作的效率是相當高的 不需要擔心頻繁的new操作對系統有性能影響 但是new操作時所調用的類構造函數可能是非常費時的 對于這些對象 可以考慮池化
返回目錄 Java程序性能優化 讓你的Java程序更快 更穩定
編輯推薦
Java程序設計培訓視頻教程
J EE高級框架實戰培訓視頻教程
J ME移動開發實戰教學視頻
Visual C++音頻/視頻技術開發與實戰
Oracle索引技術
ORACLE G數據庫開發優化指南
lishixinzhi/Article/program/Java/gj/201311/27800