莊周夢(mèng)蝶

          生活、程序、未來(lái)
             :: 首頁(yè) ::  ::  :: 聚合  :: 管理

          Java程序員常用工具集

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

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

          一、編碼工具

          1.IDE:Eclipse或者IDEA,熟悉盡可能多的快捷鍵,《Eclipse常見快捷鍵列表
          2.插件: 
          (1) Findbugs,在release之前進(jìn)行一次靜態(tài)代碼檢查是必須的
          (2) Clover,關(guān)心你的單元測(cè)試覆蓋率
          (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,熟悉常用快捷鍵。這在你需要在線編輯代碼,或者編寫其他語(yǔ)言代碼時(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)存用來(lá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í)問(wèn)題。《Btrace使用簡(jiǎn)介

          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來(lái)分析問(wèn)題。

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

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

          四、其他

          1.掌握一門腳本語(yǔ)言,Python或者Ruby,高效解決一些需要quick and dirty的任務(wù):比如讀寫文件、導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)、網(wǎng)頁(yè)爬蟲等。注意不是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.萬(wàn)能的stack overflow:http://stackoverflow.com/

          3.虛心問(wèn)牛人。

          六、最重要的是⋯⋯

          一顆永不停止學(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 咖啡@可樂(lè)
          牛叉!

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

          2012-04-18 19:05 by 李順利
          這里很全面啊,感覺(jué)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程序員常用工具集[未登錄](méi)  回復(fù)  更多評(píng)論   

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

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

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

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

          2012-04-19 22:13 by 何楊
          誰(shuí)敢說(shuō)都會(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è)問(wèn)題想問(wèn),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è)面來(lái)說(shuō),你已經(jīng)是名人了

          # re: Java程序員常用工具集[未登錄](méi)  回復(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程序員常用工具集[未登錄](méi)  回復(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)的人都有幫助。非常感謝!
          主站蜘蛛池模板: 广宁县| 卓资县| 陵川县| 新兴县| 永平县| 杭州市| 丰都县| 高阳县| 繁昌县| 南阳市| 正阳县| 新化县| 保山市| 库尔勒市| 嘉定区| 蛟河市| 广宁县| 滨海县| 浙江省| 临泽县| 镇雄县| 巴彦县| 雷山县| 龙游县| 南江县| 泰顺县| 宝兴县| 通河县| 怀化市| 乐都县| 德惠市| 娄底市| 扶风县| 长泰县| 钟祥市| 岳阳县| 安仁县| 汉川市| 安远县| 万年县| 望奎县|