转自庄大侠(killme2008)的博客,我这边收藏下。
原文地址:http://www.blogjava.net/killme2008/archive/2012/04/17/374936.html
我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了。我想列下我能想到的一个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 viewer、GC-console或者自己挑吧。
9.性能分析工具,除了自带的jvisualvm外,还可以用商业的jprofiler。
10.JVM参数大全
11.《JVM调优标准参数陷阱》,iteye神贴。
三、Linux工具
1.熟悉常用的shell命令,
2.设置ssh免登陆
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.虚心问牛人。
六、最重要的是⋯⋯
一颗永不停止学习的心。
分享到:
相关推荐
"JAVA程序员常用参考文档"这个压缩包,很显然包含了Java开发者在日常工作中可能会频繁查阅的重要资料。这里我们将深入探讨JDK(Java Development Kit)和JQuery这两个标签所代表的知识点。 首先,JDK是Java开发的...
java工具类去掉字符串String中的.点。android开发java程序员常用工具类。博文介绍:http://blog.csdn.net/qq_21376985/article/details/51482313
本文将详细解析“java开发常用工具类大全”中涉及的关键知识点,包括但不限于输入字符校验、数据转换、网络操作、加密解密、JSON处理、图像操作以及数据库操作。 1. **输入字符校验类**: 这类工具通常包含对字符...
【程序员小工具集.zip】这个压缩包集合了程序员在日常工作中可能会用到的各种小巧而实用的工具,无需安装,方便快捷。这些工具涵盖了代码编辑、版本控制、调试、性能分析等多个方面,对于提升编程效率和解决特定问题...
### Java程序员开发常用的工具 #### 1. 常用开发工具 对于Java开发者来说,选择合适的集成开发环境(IDE)至关重要。一个优秀的IDE不仅能提升编程效率,还能帮助开发者更好地组织代码、进行调试和测试等工作。以下...
Java 程序员简历模板 以下是 Java 程序员简历模板的知识点总结: 一、 HR 如何刷简历 * 定位准确:个性鲜明,一眼看上去就能贴上技术精英、管理岗‘专家的标签 * 内部一致:内容聚焦,不能出现前后不符 * 简明...
Java程序员在日常开发中需要掌握一系列的关键知识点,这个“Java程序员必备资料合集”提供了非常有价值的资源,旨在帮助开发者深入理解和高效使用Java技术。以下是基于标题、描述和标签所涉及的详细知识点: 1. **...
干程序员这行实在是离不开英语,干程序员是一项很... 这并不代表我们英语差,就不能编程了,下面提供一点入门级的程序员常用英语,以此为开始,迈出我们学习英语的第一步,努力学习英语吧,英语会使你的编程事半功倍。
JAVA程序员常用的英语词汇涵盖了编程的各个层面,从基本的数据类型、控制结构到类和对象的定义,再到异常处理和图形用户界面的设计。 首先,我们要了解一些基础的编程术语。如"A"中的"array"表示数组,"add"意味着...
本文档详细介绍了 Linux 操作系统的基础知识和实践经验,涵盖了 Linux 的安装、设置、常用命令、文件系统、网络管理、安全配置等方面的内容,同时也涉及到了 Java 开发相关的工具和技术栈,如 Tomcat、Jenkins、...
这个名为"java程序员常用的开发设置.zip"的压缩包,显然包含了与Java编程相关的开发工具的设置备份,旨在帮助开发者快速恢复或复制他们的工作环境。以下是根据压缩包内文件名推测出的一些可能的重要知识点: 1. **...
【Java程序员高手文章集+(PDF)源码整理】这一资源主要针对的是Java编程语言的学习与实践,特别是对于希望成为Java编程高手的程序员。这个压缩包包含了一整套精选的Java技术文章,以及相关的源码整理,是提升Java技能...
### Java程序员入门之路详解 #### 一、Java技术体系概览 对于初学者而言,了解Java技术体系的整体架构至关重要。Java技术体系主要包括三个方向:**J2SE**(Java 2 Platform, Standard Edition)、**J2ME**(Java 2...
这份"Java程序员常用英语单词800+"的资料,是根据Java API中五个核心包(lang, util, io, net, sql)的高频词汇整理得出的,涉及文档超过1700个。这些单词在计算机软件开发环境中具有特定含义,不仅包含通用词汇,还...
Sun认证Java程序员考试,全称为SCJP(Sun Certified Java Programmer),是Oracle公司(原Sun Microsystems)推出的针对Java编程技能的一项专业认证。这个考试主要面向希望验证自己Java编程基础的开发者,旨在评估...
以上就是根据给定的信息推测的《java程序员由菜鸟到笨鸟》一书可能涉及的关键知识点概览。这些内容不仅覆盖了Java编程的基础知识,还涉及到了一些高级特性及实际应用案例,非常适合初学者系统地学习Java编程。
在编程世界中,Java语言是不可或...掌握这些词汇可以帮助Java程序员更好地理解和阅读英文文档,跟踪最新的技术发展,从而提高编程效率和解决问题的能力。因此,持续学习和提升英语水平对于Java程序员来说是非常重要的。
### Java程序员需要掌握的知识点 在当今竞争激烈的IT行业中,作为一名Java程序员,...总之,作为一名Java程序员,不仅要掌握扎实的基础知识,还需要不断学习新技术、新工具,才能在快速变化的IT行业中立于不败之地。
### Java程序员考试题库知识点详解 #### 一、基础知识练习概览 本章节涵盖了Java的基础知识,主要包括Java入门、数据类型和运算符等关键概念。这些知识点对于初学者来说至关重要,同时也是进阶学习的重要基石。 #...