Java程序员常用工具集

标签: java 程序员 工具 | 发表时间:2012-04-17 17:05 | 作者:dennis
出处:http://www.blogjava.net/killme2008/

    我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了。我想列下我能想到的一个Java程序员会用到的常用工具。

一、编码工具

1.IDE: Eclipse或者 IDEA,熟悉尽可能多的快捷键,《 Eclipse常见快捷键列表
2.插件: 
(1) Findbugs,在release之前进行一次静态代码检查是必须的
(2) Clover,关心你的单元测试覆盖率
(3)  Checkstyle 代码风格检查

3.构建和部署工具: ant或者 maven,现在主流都是maven了吧, 使用nexus搭建maven私服,再加上持续集成 jenkins。代码质量不用愁。

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

5. diff和patch

6.设置你的eclipse或者IDEA,如formatter, save actions以及code template等。代码风格,直接用google的也可以啊。《 Google style guide

7.掌握一个文本编辑器,Emacs或者VIM,熟悉常用快捷键。这在你需要在线编辑代码,或者编写其他语言代码时候特别有用。《 神器圣战

二、JDK相关

1.jstat : 观察GC情况,如:

jstat -gcutil pid 2000

2.jmap,查看heap情况,如查看存活对象列表:
jmap -histo:live pid |grep com.company |less 

或者dump内存用来分析:

jmap -dump:file=test.bin pid

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

jhat test.bin

  分析完成后可以用浏览器查看堆的情况。这个工具的分析结果还比较原始,你还可以用 Eclipse MAT插件进行图形化分析,或者IBM的 Heap Analyzer.

4.jvisualvm和jconsole: JVM自带的性能分析和监控工具,怎么用? 请自己看文档。

5.jstack:分析线程堆栈,如

jstack pid > thread_dump

    查看CPU最高的线程在干什么的方法结合top和jstack: http://www.iteye.com/topic/1114219

6.更多JVM工具,参见官方文档: http://docs.oracle.com/javase/6/docs/technotes/tools/

7.学习使用btrace分析java运行时问题。《 Btrace使用简介

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

9.性能分析工具,除了自带的jvisualvm外,还可以用商业的 jprofiler

10.JVM参数大全

11.《 JVM调优标准参数陷阱》,iteye神贴。

三、Linux工具

1. 熟悉常用的shell命令,


3.使用 htop替换top。

4.熟悉下 strace,gdb甚至 systemtap来分析问题。

5.熟悉vmstat,iostat,sar等性能统计工具。

5.自动化部署脚本, py-fabric或者自荐下我的 clojure-control

四、其他

1.掌握一门脚本语言, Python或者 Ruby,高效解决一些需要quick and dirty的任务:比如读写文件、导入导出数据库、网页爬虫等。注意不是python.com,咔咔。

2.使用Linux或者Mac os系统作为你的开发环境。

3.升级你的“硬件工具”,双屏大屏显示器、SSD、8G内存甚至更多。

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

五、如何查找工具?

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

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

3.虚心问牛人。

六、最重要的是⋯⋯

一颗永不停止学习的心。

dennis 2012-04-17 17:05 发表评论

相关 [java 程序员 工具] 推荐:

Java程序员常用工具集

- - BlogJava-庄周梦蝶
    我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了. 我想列下我能想到的一个Java程序员会用到的常用工具. 1.IDE: Eclipse或者 IDEA,熟悉尽可能多的快捷键,《 Eclipse常见快捷键列表》. (1) Findbugs,在release之前进行一次静态代码检查是必须的.

Java程序员须知的七个日志管理工具

- - ImportNew
Splunk>Storm 日志管理工具有Splunk、Sumo Logic、LogStash、GrayLog、Loggly和PaperTrails等等,数不胜数. 日志就像石油,二十多年了我们一直想摆脱它,却一直没有做到. 为了处理日益增长的数据,近年来出现了一大批分析和管理日志的工具,开发和管理人员能够借助这些工具来了解增长的数据.

Java系统程序员修炼之道

- - 博客 - 伯乐在线
从2002开始接触Java学会HelloWorld这么经典的程序到如今不知不觉已经十年啦,十年中亲耳听到过不少大牛的演讲,见到过项目中的神人在键盘上运指如飞的编程速度,当时就被震撼了. 当编程越来越成体力活,我们还能有自己的思想,还能修炼为Java系统级别的 程序员嘛. 学习与修炼以下知识与技能,帮你早日达成愿望.

Java程序员的现代RPC指南

- - CSDN博客推荐文章
Java程序员的现代RPC指南. 最早接触RPC还是初学Java时,直接用Socket API传东西好麻烦. 于是发现了JDK直接支持的RMI,然后就用得不亦乐乎,各种大作业里凡是涉及到分布式通信的都用RMI,真是方便. 后来用上了Spring,发现Spring提供了好多Exporter,可以无侵入地将一个POJO暴露为RPC服务.

Java面试题:多线程,作为Java程序员你不得不懂

- sun - IT程序员面试网
线程:是指进程中的一个执行流程. 线程与进程的区别:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一块地址空间中工作,这些线程可以共享同一块内存和系统资源. 创建线程有两种方式,如下: 1、 扩展java.lang.Thread类 2、 实现Runnable接口 Thread类代表线程类,它的两个最主要的方法是: run()——包含线程运行时所执行的代码 Start()——用于启动线程.

Java程序员不该有的6种陋习

- - BlogJava-首页技术区
只有在学会处理异常之后,我们才能说自己是一个合格的java程序员. 只有在摆脱了以下六种异常处理的陋习之后,才能威慑一下刚毕业的小菜鸟.   现在就来测试一下大家对异常的掌握程度. 不用担心,事实上,这些不合理的设计很容易看出来. 那么,以下六种不合理的代码,大家能看出每一种的问题出在哪儿吗.   + ",姓名:" + rs.getString("name"));.

25个让Java程序员更高效的Eclipse插件

- - 博客 - 伯乐在线
Eclipse提供了一个可扩展插件的开发系统. 这就使得Eclipse在运行系统之上可以实现各种功能. 这些插件也不同于其他的应用(插件的功能是最难用代码实现的). 拥有合适的Eclipse插件是非常重要的,因为它们能让Java开发者们无缝的开发基于J2EE和服务的应用程序. Eclipse的插件也能帮助他们开发不同应用架构上的程序.

java程序员必知的8大排序

- - CSDN博客推荐文章
   (1)基本思想:在要排序的一组数中,假设前面(n-1)[n>=2] 个数已经是排. 好顺序的,现在要把第n个数插到前面的有序数中,使得这n个数. 如此反复循环,直到全部排好顺序. //将大于temp的值整体后移一个单位. 2,           希尔排序(最小增量排序). (1)基本思想:算法先将要排序的一组数按某个增量d(n/2,n为要排序数的个数)分成若干组,每组中记录的下标相差d.对每组中全部元素进行直接插入排序,然后再用一个较小的增量(d/2)对它进行分组,在每组中再进行直接插入排序.

【外刊IT评论网】Java程序员的堕落

- - 外刊IT评论网
我曾在多个场合撰文说过,现在培训出来的企业Java开发兵团只知道使用某种框架,但完全不知道这些框架的底层原理. 今天早上,在依次对三个职位的应聘者面试中,我又再次见到了这种情形. 我们的顾问公司收到了一个客户的招聘需求,要一个经验丰富并通晓SQL的Java开发人员. 我们公司在这个客户那里享有非常好的声誉,于是我们从招聘代理公司要来了一批简历,开始搜寻合适的目标.

推荐给初级Java程序员的七个免费教程

- - ImportNew
本书的作者是Bruce Eckel,它一直都是Java最畅销的免费电子书. 这本书可以帮助你系统的学习Java,里面包含有很多好的代码示例. 第三版仍旧是免费的,直到第四版才开始收费,不过仍旧值得买一本收藏. 免费下载: Thinking in Java. 这个教程来自于Oracle/Sun. 我们可以根据我们觉得合适的节奏来进行学习.