莊周夢(mèng)蝶

          生活、程序、未來
             :: 首頁 ::  ::  :: 聚合  :: 管理

          Java程序員常用工具集

          Posted on 2012-04-17 17:05 dennis 閱讀(19245) 評(píng)論(17)  編輯  收藏 所屬分類: java工作隨筆工具和命令

              我發(fā)現(xiàn)很多人沒辦法高效地解決問題的關(guān)鍵原因是不熟悉工具,不熟悉工具也還罷了,甚至還不知道怎么去找工具,這個(gè)問題就大條了。我想列下我能想到的一個(gè)Java程序員會(huì)用到的常用工具。

          一、編碼工具

          1.IDE:Eclipse或者IDEA,熟悉盡可能多的快捷鍵,《Eclipse常見快捷鍵列表
          2.插件: 
          (1) Findbugs,在release之前進(jìn)行一次靜態(tài)代碼檢查是必須的
          (2) Clover,關(guān)心你的單元測試覆蓋率
          (3) Checkstyle 代碼風(fēng)格檢查

          3.構(gòu)建和部署工具:ant或者maven,現(xiàn)在主流都是maven了吧,使用nexus搭建maven私服,再加上持續(xù)集成jenkins。代碼質(zhì)量不用愁。

          4.版本管理工具: svn或者git

          5.diff和patch

          6.設(shè)置你的eclipse或者IDEA,如formatter,save actions以及code template等。代碼風(fēng)格,直接用google的也可以啊。《Google style guide

          7.掌握一個(gè)文本編輯器,Emacs或者VIM,熟悉常用快捷鍵。這在你需要在線編輯代碼,或者編寫其他語言代碼時(shí)候特別有用。《神器圣戰(zhàn)

          二、JDK相關(guān)

          1.jstat : 觀察GC情況,如:

          jstat -gcutil pid 2000

          2.jmap,查看heap情況,如查看存活對(duì)象列表:
          jmap -histo:live pid |grep com.company |less 

          或者dump內(nèi)存用來分析:

          jmap -dump:file=test.bin pid

          3.分析dump的堆文件,可以用jhat:

          jhat test.bin

            分析完成后可以用瀏覽器查看堆的情況。這個(gè)工具的分析結(jié)果還比較原始,你還可以用Eclipse MAT插件進(jìn)行圖形化分析,或者IBM的Heap Analyzer.

          4.jvisualvm和jconsole: JVM自帶的性能分析和監(jiān)控工具,怎么用?請(qǐng)自己看文檔。

          5.jstack:分析線程堆棧,如

          jstack pid > thread_dump

              查看CPU最高的線程在干什么的方法結(jié)合top和jstack:http://www.iteye.com/topic/1114219

          6.更多JVM工具,參見官方文檔:http://docs.oracle.com/javase/6/docs/technotes/tools/

          7.學(xué)習(xí)使用btrace分析java運(yùn)行時(shí)問題。《Btrace使用簡介

          8.GC日志分析工具:GC viewerGC-console或者自己挑吧。

          9.性能分析工具,除了自帶的jvisualvm外,還可以用商業(yè)的jprofiler

          10.JVM參數(shù)大全

          11.《JVM調(diào)優(yōu)標(biāo)準(zhǔn)參數(shù)陷阱》,iteye神貼。

          三、Linux工具

          1.熟悉常用的shell命令,


          3.使用htop替換top。

          4.熟悉下strace,gdb甚至systemtap來分析問題。

          5.熟悉vmstat,iostat,sar等性能統(tǒng)計(jì)工具。

          5.自動(dòng)化部署腳本,py-fabric或者自薦下我的clojure-control

          四、其他

          1.掌握一門腳本語言,Python或者Ruby,高效解決一些需要quick and dirty的任務(wù):比如讀寫文件、導(dǎo)入導(dǎo)出數(shù)據(jù)庫、網(wǎng)頁爬蟲等。注意不是python.com,咔咔。

          2.使用Linux或者M(jìn)ac os系統(tǒng)作為你的開發(fā)環(huán)境。

          3.升級(jí)你的“硬件工具”,雙屏大屏顯示器、SSD、8G內(nèi)存甚至更多。

          4.你懂的:https://code.google.com/p/goagent/

          五、如何查找工具?

          1.搜索引擎,google或者baidu,《搜索技巧

          2.萬能的stack overflow:http://stackoverflow.com/

          3.虛心問牛人。

          六、最重要的是⋯⋯

          一顆永不停止學(xué)習(xí)的心。

          評(píng)論

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2012-04-18 08:32 by rox
          恩,這個(gè)整理的非常全面啊。
          收藏,謝謝了!

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2012-04-18 11:45 by iamct
          因?yàn)槟氵@樣的人存在,才讓很多人少走一些彎路。謝

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2012-04-18 12:14 by 咖啡@可樂
          牛叉!

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2012-04-18 19:05 by 李順利
          這里很全面啊,感覺java性能調(diào)優(yōu)方面的工具,個(gè)人用的還是比較少的

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2012-04-18 20:53 by 秦?zé)j
          開始使用 vim

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2012-04-19 09:23 by tony.li.fly@gmail.com
          謝謝你的整理,真的學(xué)習(xí)了。

          # re: Java程序員常用工具集[未登錄]  回復(fù)  更多評(píng)論   

          2012-04-19 14:02 by Seven
          謝謝
          現(xiàn)在也正想學(xué)一門動(dòng)態(tài)腳本
          能講解一下python 和 ruby的不同點(diǎn)么
          推薦我一了解一下哪個(gè) 謝謝

          # re: Java程序員常用工具集[未登錄]  回復(fù)  更多評(píng)論   

          2012-04-19 18:54 by zc
          樓主是好人

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2012-04-19 22:13 by 何楊
          誰敢說都會(huì)?

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2012-04-20 09:33 by 秦?zé)j
          另外 有人用ubuntu進(jìn)行開發(fā)的嘛

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2012-04-20 13:37 by 不惑之年
          對(duì)我這個(gè)新手,這個(gè)文章真太有幫助了。
          有個(gè)問題想問,IDE工具是否NetBeans更好?

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2012-04-22 03:02 by 北京西服定制
          好呀

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2012-04-22 22:55 by whiletrue
          昨天你貼的地址,今天就上不了,唉
          從另一個(gè)側(cè)面來說,你已經(jīng)是名人了

          # re: Java程序員常用工具集[未登錄]  回復(fù)  更多評(píng)論   

          2012-05-23 10:00 by 本本
          只有第六條,可惜不知道如何學(xué)習(xí)!

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2012-06-08 15:53 by cfyme
          學(xué)習(xí)了

          # re: Java程序員常用工具集[未登錄]  回復(fù)  更多評(píng)論   

          2012-06-17 22:06 by Vince
          嚓……CheckStyle都有……我的老師RickGiles(叫我大一編程……今年剛退休)寫的= =|||

          # re: Java程序員常用工具集  回復(fù)  更多評(píng)論   

          2015-11-08 21:52 by 大兵小將
          總結(jié)的非常好,不論是對(duì)新手還是有一定工作經(jīng)驗(yàn)的人都有幫助。非常感謝!
          主站蜘蛛池模板: 开化县| 灵寿县| 锦州市| 邻水| 华安县| 商洛市| 信阳市| 新和县| 芮城县| 天等县| 中江县| 安龙县| 喀什市| 石阡县| 陕西省| 灵川县| 临沂市| 永济市| 大悟县| 宝清县| 冀州市| 宜良县| 广昌县| 土默特左旗| 永丰县| 巢湖市| 教育| 邛崃市| 本溪市| 资溪县| 岗巴县| 蒲城县| 松桃| 沾化县| 锦屏县| 新源县| 应用必备| 鄂托克前旗| 钟山县| 越西县| 克什克腾旗|