前言:
visualVM:
运行 java 程序的时候启动 visualvm, 方便查看 jvm 的情况 比如堆内存大小的分配; 某个对象占用了多大的内存, jvm 调优必备工具.
checkstyle:
CheckStyle 是 SourceForge 下的一个项目, 提供了一个帮助 JAVA 开发人员遵守某些编码规范的工具.
它能够自动化代码规范检查过程, 从而使得开发人员从这项重要, 但是枯燥的任务中解脱出来.
CheckStyle 检验的主要内容:
1):Javadoc 注释; 2): 命名约定; 3):. 标题 4):Import 语句 ; 5): 体积大小; 6): 空白; 7): 修饰符; 8): 块; 9): 代码问题; 10): 类设计
混合检查(包括一些有用的比如非必须的 System.out 和 printstackTrace)
从上面可以看出, CheckStyle 提供了大部分功能都是对于代码规范的检查, 而没有提供像 PMD 和 Jalopy 那么多的增强代码质量和修改代码的功能.
但是, 对于团队开发, 尤其是强调代码规范的公司来说, 它的功能已经足够强大.
PMD:
PMD 是扫描 Java 源码并查找以下潜在问题:
1): 从未用过的局部变量
2): 空捕捉块(catch block)
3): 从未用过的参数
4): 空 if 声明
5): 重复的导入声明
6): 从未用过的私有方法
7): 孤立的类
8): 短型或长型变量及方法名
PMD 具有下列软件的插件: JEdit, JBuilder, NetBeans/Sun ONE Studio, IntelliJ IDEA, TextPad, Maven, Ant, Eclipse, Gel, Emacs
PMD 的含义:
坦率地说, 我们其实也不知道 PMD 的真正意义所在 (我们只是认为这三个字母拼在一起较为好听) . 但是, 我们提出了计算行业的几种解释以供参考.
- PMD:
- Pretty Much Done (几乎无所不能)
- Project Mess Detector (项目故障探测器)
- Project Monitoring Directives (项目监视器)
- Protein Mutant Database (基因突变数据库)
- Project Meets Deadline (项目到期)
- Programming Mistake Detector (程序错误检测器)
- Pounds Mistakes Dead (彻底纠错)
- PMD Meaning Discovery (PMD 含义探索)
PMD 运行机制:
PMD 根据规则核对源码并产生一个报告. 具体如下:
有文件名和 RuleSet 传入 PMD ;PMD 将通过该文件的 InputStream 传递给由 JavaCC - 生成的解析器 ;PMD 从解析器取得指向抽象语法树 (AST) 的引用; RuleSet 中的每个规则都遍历 AST 并检查错误
报告内容包括 RuleViolations 以及符合 XML ,html 或其它格式的代码 / 文件
安装步骤:
到这里我们默认已经完成了 3 个插件的安装.
checkstyle,PMD, 都可以直接使用, 但 VsiualVM 需要配合客户端来完成配置和使用.
下面先去官网下载 VisualVM 的客户端. VisualVM 官网链接 https://visualvm.github.io/download.html
配置连接过程如下:
在打开的页面内选择已经解压好的文件夹中的 bin 文件夹内的 "VisualVM.exe"
visualVM: 使用操作
1): 在代码编辑区点击右键, 如图选择
这时会触发 VisualVM 客户端, 可以观察项目内的性能使用情况
checkstyle: 使用操作
1):. 安装完之后, 我们打开 checkstyles, 点击绿色箭头
2): 出现提示 "No rules file has been configured", 这是提醒我们没有为其指定配置文件, 它不知道应该按照什么标准来评判代码的风格
3): 解决办法: 打开 settings->Other Settings->Checkstyle , 选定默认的配置文件.
---------------------- 后续补全 ----------------------
PMD: 使用步骤
1): 在代码编辑区点击右键, 根据项目不同选择不同的检查规则集
2): 在下方按照不同规则集显示出不同位置的错误, 通过规则名就可以得知代码的问题类型
--------------------------------------------------------------------------------
来源: https://www.cnblogs.com/mlq2017/p/9649584.html