代码优化工具

转载

本文介绍一些Java源代码优化和分析工具,以帮助我们优化代码以及检查源代码中的潜在问题。

本文英文原文来源:http://java.dzone.com/articles/java-tools-source-code

      1. PMD

  网址:http://pmd.sourceforge.NET/

  PMD能够扫描Java 源代码,查找类似以下的潜在问题:

  可能的bug - try/catch/finally/switch语句中返回空值;死代码 - 未使用的局部变量、参数、私有方法;不理想的代码 - 使用String/StringBuffer;过于复杂的表达式 - 没有必要使用if语句、while循环可以代替for循环;重复代码 - 复制/粘贴的代码引发的bug。

  PMD集成了JDeveloper, Eclipse, JEdit, JBuilder, BlueJ, CodeGuide, NetBeans/Sun JavaStudio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, 以及 Emacs。

  2. FindBugs

  网址:http://findbugs.sourceforge.Net

  FindBugs是一个使用静态方法来查找Java代码漏洞的程序。

  3.Clover

  网址:http://www.cenqua.com/clover/

  这个插件允许你在不离开IDE的环境条件下来衡量和检测覆盖效果。该插件通过使用Apache Ant、Maven来无缝集成其它项目,可以通过命令行界面和API系统轻松集成到传统的构建系统中。

  该插件的特性:

  支持快速、准确、可配置的方法、语句等;支持丰富的报告格式:HTML、PDF、XML、以及Swing GUI;精确控制源代码级别的过滤;支持代码覆盖以及其它指标的图表;完全兼容JUnit 3.x & 4.x, TestNG, JTiger以及其它的测试框架。

  4. Macker

  网址:http://innig.net/macker/

  Macker是一个适用于Java开发人员用来检查架构规则的工具。你可以定制一个适合特定项目架构的规则文件,也可以为您的代码撰写通用的规则说明。

  5. EMMA

  网址:http://emma.sourceforge.net/

  EMMA支持的覆盖类型:方法、类等。输出报告的格式为:文本、HTML、XML。输出报告可以高亮显示某些项目。EMMA不需要访问源代码,可以在输入类中减少调试的信息。

  6. XRadar

  网址:http://xradar.sourceforge.net/

  XRadar是一个开放的、为代码生成可扩展报告的工具。目前支持基于Java的所有系统。批量处理的框架可以用来生成HTML/SVG系统的报告。Xradar可以估量代码的大小、复杂性以及代码的重复性、依赖性等。

  7. Hammurapi

  网址:http://www.hammurapi.com

  Hammurapi是一款执行Java程序代码的自动检测工具。提供的实例中含有282条Hammurapi代码规则,提供了120多个Java类,这款所谓的检测工具,可以从三个级别来检测代码是否违背了编码标准。

  8. Relief

  网址:http://www.workingfrog.org/

  Relif是一款设计工具,为Java项目提供了崭新的面貌。我们可以充分发挥自己的能力来处理真实的实例通过检测大小、形状、关系等来简化处理过程。

  9. Hudson

  网址:http://hudson-ci.org/

  Hudson 是一个持续集成工具,使用Java编写,运行在Servlet容器中,比如Apache Tomcat或者或GlassFish应用服务器。它支持SCM工具,包括CVS、Subversion、Git和ClearCase。它可以执行Apache Ant、基于Apache Maven的项目、以及任意的shell脚本和Windows批处理命令。

  10. Cobertura

  网址:http://cobertura.sourceforge.net/

  Cobertura是一个免费的基于jcoverage的Java工具,用于计算代码被测试访问的百分比,它可以被用来确定Java程序中的缺少部分的测试覆盖率。

  11. SonarSource

  网址:http://www.sonarsource.org/

  Sonar是一个管理代码质量的开放平台。因此,它涵盖了代码质量的7个方面:架构与设计、重复、单元测试、复杂性、潜在错误、编码规则、评论。

  英文原文:http://java.dzone.com/articles/java-tools-source-code

0
时间: 2024-10-29 00:15:53

代码优化工具的相关文章

Android Lint——内嵌于Android Studio的代码优化工具

Android Lint工具是Android Studio 自带的静态代码工模具,Android Lint是专门针对Android 定制的检查规则,因此可以检查出很多Android特有的代码缺陷.建议在开发过程中,经常性地检查编写的代码是否存在问题,在每次测试功能模块前运行Lint是一个不错的时机. Android Studio自身集成了Android Lint,用鼠标右键单击工程中的任一一个文件夹,在弹出菜单中选择Analyze →Inspect Code...即可执行Lint检查. 检查结果

便捷开发工具(未完)

模拟器管理工具 1. SimPholders,能够随时了解你的模拟器各版本号内应用.提供删除不必要的应用连接 下载地址:http://simpholders.com/ 高速打开iOS8模拟器路径   : https://laoyur.com/?p=601 2.XFunnyEditor:能够设置xcode背影图 下载地址:https://github.com/STAR-ZERO/XFunnyEditor 项目/代码优化工具 2.bee-framework.一个被移动.联通.电信.腾讯.新浪.百度.

PHP面试题及答案解析(8)—PHP综合应用题

1.写出下列服务的用途和默认端口. ftp.ssh.http.telnet.https ftp:File Transfer Protocol,文件传输协议,是应用层的协议,它基于传输层,为用户服务,它们负责进行文件的传输,其默认端口是21. ssh:Secure Shell,安全外壳协议,建立在应用层和传输层基础上的安全协议.SSH是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议,其默端口是22. http:hypertext transport protocol,超文本传送协议,是

PHP面试题二

1.抓取远程图片到本地,你会用什么函数? fsockopen, A 2.用最少的代码写一个求3值最大值的函数. function($a,$b,$c){* W0 z* u6 k+ e. L  a: }5 }    return $a>$b? ($a>$c? $a : $c) : ($b>$c? $b  :  $c );5 O: F6 v1 W# U} 3.用PHP打印出前一天的时间,打印格式是2007年5月10日22:21:21 Echo date('Y-m-d H:i:s',strtot

PHP面试试题

1,用PHP打印出前一天的时间,格式是2006-5-10 22:21:21echo date("Y:m:d H:i:s",strtotime("-1 day"));?>2,echo(),print(),print_r()的区别echo是语言结构,无返回值;print功能和echo基本相同,不同的是print是函数,有返回值;print_r是递归打印,用于输出数组对象3,能够使HTML和PHP分离开使用的模板smarty, PHPLib, FastTemplat

php面试题2

php面试题及答案(原创)收藏 基础题: 1.表单中 get与post提交方法的区别? 答:get是发送请求HTTP协议通过url参数传递进行接收,而post是实体数据,可以通过表单提交大量信息. 2.session与cookie的区别? 答:session:储存用户访问的全局唯一变量,存储在服务器上的php指定的目录中的(session_dir)的位置进行的存放 cookie:用来存储连续訪問一个頁面时所使用,是存储在客户端,对于Cookie来说是存储在用户WIN的Temp目录中的. 两者都可

PHP面试题4

在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中:而链接到当前页面的URL记录在预定义变量(2)中. 答:echo $_SERVER['PHP_SELF']; echo $_SERVER["HTTP_REFERER"]; 2.执行程序段<?php echo 8%(-2) ?>将输出(3). 答:0 3.在HTTP 1.0中,状态码 401 的含义是(4):如果返回"找不到文件"的提示,则可用 header 函数,其语句为(5)

Web应用性能优化黄金法则——转

本文转自:Web应用性能优化黄金法则——转 Web应用性能优化黄金法则:先优化前端程序(front-end)的性能,因为这是80%或以上的最终用户响应时间的花费所在. 法则1. 减少HTTP请求次数 80%的最终用户响应时间花在前端程序上,而其大部分时间则花在各种页面元素,如图像.样式表.脚本和Flash等,的下载上.减少页面元素将会减少HTTP请求次数.这是快速显示页面的关键所在. 一种减少页面元素个数的方法是简化页面设计.但是否存在其他方式,能做到既有丰富内容,又能获得快速响应时间呢?以下是

Android高级开发知识总结

第1篇 基础篇 第1章 Android触摸事件传递机制 1.1 触摸事件的类型 1.2 事件传递的三个阶段 1.3 View的事件传递机制 1.4 ViewGroup的事件传递机制 第2章 Android View的绘制流程 2.1 绘制的整体流程 2.2 MeasureSpec 2.3 Measure 2.4 Layout 2.5 Draw 第3章 Android 动画机制 3.1 逐帧动画(Frame Animation) 3.1.1 XML 资源文件方式 3.1.2 代码方式 3.2 补间