Java程序员常用工具集
我发现很多人没办法高效地解决问题的关键原因是不熟悉工具,不熟悉工具也还罢了,甚至还不知道怎么去找工具,这个问题就大条了。我想列下我能想到的一个Java程序员会用到的常用工具。
一、编码工具
1.IDE:Eclipse或者IDEA,熟悉尽可能多的快捷键,《Eclipse常见快捷键列表》
2.插件:
(1) Findbugs,在release之前进行一次静态代码检查是必须的
(2) Clover,关心你的单元测试覆盖率
(3) Checkstyle 代码风格检查
3.构建和部署工具:ant或者maven,现在主流都是maven了吧,使用nexus搭建maven私服,再加上持续集成jenkins。代码质量不用愁。
6.设置你的eclipse或者IDEA,如formatter,save actions以及code template等。代码风格,直接用google的也可以啊。《Google style guide》
7.掌握一个文本编辑器,Emacs或者VIM,熟悉常用快捷键。这在你需要在线编辑代码,或者编写其他语言代码时候特别有用。《神器圣战》
二、JDK相关
1.jstat : 观察GC情况,如:
2.jmap,查看heap情况,如查看存活对象列表:
或者dump内存用来分析:
3.分析dump的堆文件,可以用jhat:
分析完成后可以用浏览器查看堆的情况。这个工具的分析结果还比较原始,你还可以用Eclipse MAT插件进行图形化分析,或者IBM的Heap Analyzer.
4.jvisualvm和jconsole: JVM自带的性能分析和监控工具,怎么用?请自己看文档。
5.jstack:分析线程堆栈,如
查看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工具
3.使用htop替换top。
4.熟悉下strace,gdb甚至systemtap来分析问题。
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程序员常用工具类库
有人说当你开始学习Java的时候,你就走上了一条不归路,在Java世界里,包罗万象,从J2SE,J2ME,J2EE三大平台,到J2EE中的13中核心技术,再到Java世界中万紫千红的Framework ...
- Java程序员常用工具类库 - 目录
有人说当你开始学习Java的时候,你就走上了一条不归路,在Java世界里,包罗万象,从J2SE,J2ME,J2EE三大平台,到J2EE中的13中核心技术,再到Java世界中万紫千红的Framework ...
- java工具类去掉字符串String中的.点。android开发java程序员常用工具类
下面是工具类详细代码: package com.qq986945193.david; /** * qq986945193 Project * ============================= ...
- Java程序员面试题集(71-85)(转)
转:http://blog.csdn.net/jackfrued/article/details/17566627 Java程序员面试题集(71-85) 摘要:这一部分主要包括了UML(统一建模语言) ...
- Java程序员面试题集(51-70)(转)
转:http://blog.csdn.net/jackfrued/article/details/17403101 Java程序员面试题集(51-70) 摘要:这一部分主要讲解了异常.多线程.容器和I ...
- Java程序员面试题集(1-50
下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和答案,原来的题目中有很多重复题目和无价值的题目,还有不少的参考答案也是错误的,修改后的Java面试题集参照了JDK最 ...
- Java程序员面试题集(1-50)(转)
转:http://blog.csdn.net/jackfrued/article/details/17339393 下面的内容是对网上原有的Java面试题集及答案进行了全面修订之后给出的负责任的题目和 ...
- JAVA程序员常用英语
JAVA程序员常用英语 干程序员这行实在是离不开英语,干程序员是一项很辛苦的工作,要成为一个高水平的程序员尤为艰难.这是因为计算机软件技术更新的速度越来越快,而这些技术大多来源于英语国家,我们在引进这 ...
- Java程序员面试题集(136-150)(转)
转:http://blog.csdn.net/jackfrued/article/details/17740651 Java程序员面试题集(136-150) 摘要:这一部分主要是数据结构和算法相关的面 ...
随机推荐
- Codeforces Round #343 (Div. 2) C. Famil Door and Brackets
题目链接: http://codeforces.com/contest/629/problem/C 题意: 长度为n的括号,已经知道的部分的长度为m,现在其前面和后面补充‘(',或')',使得其长度为 ...
- Java7 新特性 数值文本表示法
今天和大家分享下 java7中新特性-数值文本表示法 首先,在原来jdk1.6中 如果需要将一个二进制的数值转换成十进制的话,一般情况下都会以下面的代码方式去实现. public static voi ...
- BZOJ1692: [Usaco2007 Dec]队列变换
1692: [Usaco2007 Dec]队列变换 Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 594 Solved: 246[Submit][Sta ...
- 剑指offer--面试题5
到现在为止,看过的书+代码有一定量了,并且也参加了个比赛,给自己的总体感觉:编程需要的是灵活的头脑,书里的东西只是讲个规则.思想,其实际实现可以千差万别! 潜在的规则+灵活的思维 = 程序! 在做 ...
- Leetcode#78 Subsets
原题地址 有两种方法: 1. 对于序列S,其子集可以对应为一个二进制数,每一位对应集合中的某个数字,0代表不选,1代表选,比如S={1,2,3},则子集合就是3bit的所有二进制数. 所以,照着二进制 ...
- QAQ高精度模板笔记√
#include <cmath> #include <cstdio> #include <cstring> #include <iostream> #i ...
- 毕向东JAVA视频讲解(第七课)
构造函数:构建创造对象时调用的函数.作用:可以给对象进行初始化. 创建对象都必须要通过构造函数初始化. 一个类中如果没有定义过构造函数,那么该类中会有一个默认的空参数构造函数. 如果在类中定义了指定的 ...
- Spring transaction事务之roll back回滚
转载自:http://blog.csdn.net/lovejavaydj/article/details/7635848 试验方法: 写一个单元测试,调用一个service层方法(发生对数据库进行写操 ...
- flexbox弹性盒子布局
混合划分 demo1,css: #demo1{ width: 100%; background: #ccc; display: -webkit-flex;/*表示使用弹性布局*/ } #demo1 . ...
- 255. Verify Preorder Sequence in Binary Search Tree
题目: Given an array of numbers, verify whether it is the correct preorder traversal sequence of a bin ...