Best Practise(JDK API)
一些常用的代碼示例,經(jīng)驗(yàn)
源碼實(shí)現(xiàn)實(shí)時(shí)獲取Java堆內(nèi)存信息
摘要: 如果大家有遇到過(guò)Java內(nèi)存泄露問(wèn)題,而且親自動(dòng)手去定位和分析經(jīng)歷的同學(xué)來(lái)講,獲取Java的堆內(nèi)信息對(duì)了內(nèi)存使用情況的問(wèn)題分析和定位是非常有幫助了。例如我們常用的MAT工具,可以較方便的讓我們定位程序中內(nèi)存的使用情況,是哪塊導(dǎo)致了內(nèi)存的泄露等。
但由于傳統(tǒng)的分析過(guò)程比較麻煩,需要使用Jdk的jmap(Java Memory Map)命令把heap內(nèi)存dump到一個(gè)文件,然后用MAT進(jìn)行分析。所以本文介紹一種方法可以實(shí)現(xiàn)在線查看heap內(nèi)存的使用情況,并附上源碼實(shí)現(xiàn),希望對(duì)大家有幫助。由于目前調(diào)研中只找到了Sun JDK6以及以上版本的實(shí)現(xiàn),所以目前該方案只支持Sun JDK6或以上。如果其他同學(xué)有其它版本的JDK實(shí)現(xiàn)分享,歡迎一起交流。
閱讀全文
posted @
2013-02-20 16:30 x.matthew 閱讀(6320) |
評(píng)論 (9) 編輯
JDK 并發(fā)API學(xué)習(xí)筆記之CyclicBarrier同步器
摘要: CyclicBarrier一個(gè)同步輔助類,它允許一組線程互相等待,直到到達(dá)某個(gè)公共屏障點(diǎn) (common barrier point)。假如在涉及一組固定大小的線程的程序應(yīng)用中,要求這些線程必須不時(shí)地互相等待(保證所有線程都執(zhí)行完畢才返回),那么選擇 CyclicBarrier 就會(huì)讓這個(gè)實(shí)現(xiàn)變得非常容易。CyclicBarrier 在釋放等待線程后可以重用,所以又稱它為循環(huán) 的 barrier。
閱讀全文
posted @
2012-06-28 13:34 x.matthew 閱讀(2754) |
評(píng)論 (1) 編輯
LRUMap 源代碼實(shí)現(xiàn)解讀
摘要: 本文通過(guò)對(duì)Apache Commons Collections 項(xiàng)目中LRUMap這個(gè)集合類的源代碼進(jìn)行詳細(xì)解讀,為幫助大家更好的了解這個(gè)集合類的實(shí)現(xiàn)原理以及使用如何該集合類。
首先介紹一下LRU算法. LRU是由Least Recently Used的首字母組成,表示最近最少使用的含義,一般使用在對(duì)象淘汰算法上。也是比較常見(jiàn)的一種淘汰算法。
閱讀全文
posted @
2012-06-28 13:34 x.matthew 閱讀(5855) |
評(píng)論 (1) 編輯
Thrift學(xué)習(xí)筆記(原創(chuàng))
摘要: Thrift出自Facebook用于后臺(tái)各個(gè)服務(wù)間的通訊,Thrift的設(shè)計(jì)強(qiáng)調(diào)統(tǒng)一的編程接口的多語(yǔ)言通訊框架.
本文通過(guò)一個(gè)實(shí)例來(lái)介紹一下Thrift最基本的應(yīng)用。
閱讀全文
posted @
2011-11-12 18:57 x.matthew 閱讀(17899) |
評(píng)論 (4) 編輯
如何做到API兼容(轉(zhuǎn)載)
摘要: 本文主要介紹什么是API,以及API兼容的重要性,最終給出方案如何評(píng)估API,以及如何做到API兼容。
閱讀全文
posted @
2011-07-29 19:35 x.matthew 閱讀(579) |
評(píng)論 (0) 編輯
Tomcat7 StuckThreadDetectionValve 功能分析
摘要: 本月Tomcat 7.0.14版本正式發(fā)布,其最顯著的一個(gè)新功能就是引入了StuckThreadDetectionValve功能,該功能可以幫助分析和檢查耗時(shí)的請(qǐng)求或潛在可能會(huì)出現(xiàn)請(qǐng)求線程阻塞等情況
閱讀全文
posted @
2011-05-25 21:51 x.matthew 閱讀(3060) |
評(píng)論 (4) 編輯
Java IO部分的學(xué)習(xí)筆記
摘要: 針對(duì) JDK IO部分整理的類圖
閱讀全文
posted @
2009-06-13 10:38 x.matthew 閱讀(3424) |
評(píng)論 (6) 編輯
svenson, 一個(gè)用于生成和解析JSON數(shù)據(jù)格式的Java5開(kāi)源類庫(kù)
摘要: svenson是一個(gè)用于生成和解析JSON數(shù)據(jù)格式的Java5開(kāi)源類庫(kù)。它能夠?qū)SON數(shù)據(jù)集轉(zhuǎn)換成Java對(duì)象或相反的操作。
閱讀全文
posted @
2008-12-29 21:35 x.matthew 閱讀(3119) |
評(píng)論 (0) 編輯
Java對(duì)象XML序列化框架-Simple2.0
摘要: Simple是一個(gè)XML序列化框架,一個(gè)Java版本寬容的序列化框架,能夠快速在Java平臺(tái)上開(kāi)發(fā)XML。支持通過(guò)annotations完全配置化的XML結(jié)構(gòu);提供版本管理框架允許向前和向后兼容序列化;更好的性能,使用輕量級(jí)StAX提升XML反序列化進(jìn)程,比XStream和JAXB更快;通過(guò)namespace annotations提供完全的命名空間支持;包括XML模板系統(tǒng)
閱讀全文
posted @
2008-12-10 20:16 x.matthew 閱讀(3830) |
評(píng)論 (1) 編輯
使用ftp4j類來(lái)實(shí)現(xiàn)FTP操作
摘要: ftp4j是一個(gè)FTP客戶端Java類庫(kù),實(shí)現(xiàn)了FTP客戶端應(yīng)具有的大部分功能。可以將ftp4j嵌到你的Java應(yīng)用中,來(lái)傳輸文件(包括上傳和下載),瀏覽遠(yuǎn)程FTP服務(wù)器上的目錄和文件,創(chuàng)建、刪除、重命,移動(dòng)遠(yuǎn)程目錄和文件。ftp4j提供多種方式連接到遠(yuǎn)程FTP服務(wù)器包括:通過(guò) TCP/IP直接連接,通過(guò)FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理連接,通過(guò)SSL安全連接。
閱讀全文
posted @
2008-12-01 08:13 x.matthew 閱讀(7732) |
評(píng)論 (8) 編輯
使用cobertura來(lái)測(cè)量單元測(cè)試的代碼覆蓋情況
摘要: Cobertura是一個(gè)基于jcoverage的免費(fèi)Java工具,它能夠顯示哪一部分代碼被你的測(cè)試所覆蓋,并可生成HTML或XML報(bào)告. 本文將介紹如何在項(xiàng)目中使用cobertura來(lái)測(cè)量單元測(cè)試的代碼覆蓋情況.
閱讀全文
posted @
2008-11-25 22:47 x.matthew 閱讀(4546) |
評(píng)論 (4) 編輯
Java Base64類庫(kù)學(xué)習(xí)筆記
摘要: Java Base64 這是一個(gè)用于編碼和解碼(encode/decode )base64字符串和數(shù)據(jù)流的Java開(kāi)源類庫(kù)。Base64是網(wǎng)絡(luò)上最常見(jiàn)的用于傳輸8Bit字節(jié)代碼的編碼方式之一。可用來(lái)作為電子郵件或WebService附件的傳輸編碼.
閱讀全文
posted @
2008-11-25 20:23 x.matthew 閱讀(10281) |
評(píng)論 (0) 編輯
JSON taglib學(xué)習(xí)筆記
摘要: JSON-taglib 是 JSP 2.0 標(biāo)簽庫(kù),用于生產(chǎn) JSON (JavaScript Object Notation) 數(shù)據(jù)結(jié)構(gòu)。
閱讀全文
posted @
2008-11-03 19:30 x.matthew 閱讀(2333) |
評(píng)論 (0) 編輯
Java工具類學(xué)習(xí)筆記
摘要: 本人早期整理的Java工具類學(xué)習(xí)筆記
閱讀全文
posted @
2008-10-25 20:21 x.matthew 閱讀(4101) |
評(píng)論 (7) 編輯
Full Best Practise(JDK API) Archive