1.FindBugs

顾名思义,FindBugs是一款帮助开发者发现bug的工具,它是一个开源项目,遵循GNU公共许可协议,运行的是Java字节码而不是源码。

它是一款静态分析工具,它检查类或者JAR文件,将字节码与一组缺陷模式进行对比来发现可能存在的问题,这些问题包括空指针引用、无限递归循环、死锁等。

FindBugs在发现错误后,会进行等级划分,它把发现的错误分为四个等级:

  1. scariest(恐怖的)
  2. scary(吓人的)
  3. troubling(令人困扰的)
  4. of concern(值得关注的)

FindBugs是一个独立的GUI应用程序,有多种使用方式,可以作为Eclipse、NetBeans、IntelliJ IDEA插件使用,也可以从命令行、Ant、Maven使用。

2.Apache Ant

Apache Ant是由Apache软件基金会所提供的一款开源软件,是一个将软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,主要用于Java环境中进行软件开发,它还可以用于构建C或C++应用程序,也可以针对目标任务运用在多种软件开发过程上。

Apache Ant有大量商用或开源的“antlibs”供大家使用,它非常灵活,因为他对编码约定或目录布局都是没有任何限制的。Apache Ant被广泛运用在各种Java IDE环境中,如Eclipse、NetBeans、IntelliJ IDEA等。

3.JProfiler

JProfiler是一个商业授权的Java剖析工具,由EJ技术有限公司开发,主要是针对Java EE和Java SE应用程序使用。它把CPU、内存和线程分析析组合在一个强大的应用中,从而可以用来分析性能瓶颈、内存泄漏、CPU负载以及线程问题。

JProfiler支持多种剖析模式:本地会话实时分析模式、远程会话实时分析模式、离线分析模式、快照比较、查看HPROF快照。此外,JProfiler既可以作为单独的应用程序使用,也可以作为一个插件使用,也可以在Adobes Coldfusion和Glassfish中作为应用服务器集成的一部分。

4.Bash

全称是Bourne-Again SHell,发布于1989年。它是一个Unix shell或命令式语言解析器,它作为GNU项目,是Bourne shell的一个免费替代。它在GNU操作系统上作为shell被广泛运用,它已是大多数Linux系统以及Mac OS X v10.4默认的shell,它能运行于大多数Unix风格的操作系统之上,甚至被移植到了Microsoft Windows上的Cygwin系统中,以实现Windows的POSIX虚拟接口。此外,它也被DJGPP项目移植到了MS-DOS上。

它通常被用作一个命令处理器,通常运行在一个文本窗口,它还可以从文件中读取各种命令、支持通配符的文件名、piping、命令替换、变量、控制结构等用来进行条件或迭代测试。

5.Sonarqube

Sonarqube是一个开源平台,是一款代码质量管理和环境搭建工具。它目前支持25种以上语言,包括Java、C/C++、C#、PHP、Flex、JavaScript、Python、PL/SQL、COBOL等,此外,它还可以作为Android开发的一部分。

它提供了完全自动化的分析工具,并且可以与Maven、Ant、Gradle和其它集成工具很好地集成,也可以与Java IDE进行很好的集成。它还可以用于报告重复的代码、编码标准、单元测试、代码覆盖率、复杂的代码、潜在的bug、评论、设计和架构。

5款工具助你写出更好的Java代码的更多相关文章

  1. [label][翻译][JavaScript-Translation]七个步骤让你写出更好的JavaScript代码

    7 steps to better JavaScript 原文链接: http://www.creativebloq.com/netmag/7-steps-better-javascript-5141 ...

  2. 利用这10个工具,你可以写出更好的Python代码

    我每天都使用这些实用程序来使我的Python代码可显示. 它们是免费且易于使用的. 编写漂亮的Python比看起来难. 作为发布工作流程的一部分,我使用以下工具使代码可显示并消除可避免的错误. 很多人 ...

  3. 9条消除if...else的锦囊妙计,助你写出更优雅的代码

    前言 最近在做代码重构,发现了很多代码的烂味道.其他的不多说,今天主要说说那些又臭又长的if...else要如何重构. 在介绍更更优雅的编程之前,让我们一起回顾一下,不好的if...else代码 一. ...

  4. 几个你所不知道的技巧助你写出更优雅的vue.js代码

    1. watch 与 computed 的巧妙结合 如上图,一个简单的列表页面. 你可能会这么做: created(){ this.fetchData() }, watch: { keyword(){ ...

  5. 让我们一起写出更有效的CSharp代码吧,少年们!

    周末空闲,选读了一下一本很不错的C#语言使用的书,特此记载下便于对项目代码进行重构和优化时查看. Standing On Shoulders of Giants,附上思维导图,其中标记的颜色越深表示在 ...

  6. Java 11正式发布,这几个逆天新特性教你写出更牛逼的代码

    就在前段时间,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用! 这无疑对我们来说是一大好的消息.作为一名java开发者来说,虽然又要去学习和了解java11 ...

  7. Java 11 正式发布,这 8 个逆天新特性教你写出更牛逼的代码

    美国时间 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以后支持的首个长期版本. 为什么说是长期版本,看下面的官方发布的支持路线图表. 可以看出 Java 8 扩 ...

  8. Java 11 这 8 个逆天新特性教你写出更牛逼的代码!

    美国时间2018年 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以后支持的首个长期版本. 为什么说是长期版本,看下面的官方发布的支持路线图表. 可以看出 Jav ...

  9. 使用Groovy+Spock轻松写出更简洁的单测

    当无法避免做一件事时,那就让它变得更简单. 概述 单测是规范的软件开发流程中的必不可少的环节之一.再伟大的程序员也难以避免自己不犯错,不写出有BUG的程序.单测就是用来检测BUG的.Java阵营中,J ...

随机推荐

  1. apache官方供下载所有项目所有版本的官方网站地址

    Apache官网有一个列举apache所有发布的项目的各个版本的官方网站,现在在此记录下来供大家快速浏览使用. 网站地址如下: http://archive.apache.org/dist/

  2. MovieReview—Wile Hunter(荒野猎人)

     Faith is Power         Faith is power, this sentence is not wrong. Find your own beliefs, and strug ...

  3. 为Oracle Clusterware修改公用及私有网络接口

    出于种种原因我们可能需要为已安装的Oracle集群软件修改其使用的公用或私有网络所使用的网络接口(How to Change Interconnect/Public Interface IP or S ...

  4. Windows 漏洞利用开发

    第一阶段:简单栈溢出 分析栈溢出原理 寻找溢出点,了解pattern_create和pattern_offset计算溢出点的原理 寻找JMP ESP跳板,分析利用JMP ESP跳板劫持程序流的原理 编 ...

  5. Ajax的原理及Django上传组件

    title: Ajax的原理及Django上传组件 tags: Django --- Ajax的原理及Django上传组件 Ajax的原理 ajax 是异步JavaScript和xml ajax就是向 ...

  6. javaweb基础(6)_servlet配置参数

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  7. SpringMVC的controller层的方法返回值

    1.ModelAndView  既带着数据,又返回视图路劲 2.String 返回试图路径  model带数据  (官方或企业推荐使用此种方式 ,此方法符合解耦思想,即数据,视图,分离 MVC) 3. ...

  8. C#数组排序方法

    在C#中常用的数组排序的方法有:选择排序法.冒泡排序法.插入排序法和希尔排序法等. 一.选择排序法 using System;using System.Collections.Generic;usin ...

  9. TreeMap 底层是红黑树 排序是根据key值进行的 添加元素时异常 Comparable异常 Comparator比较自定义对象放在键的位置

    package com.swift; import java.util.Comparator; import java.util.HashMap; import java.util.Iterator; ...

  10. 01将图片嵌入到Markdown文档中

    将图片内嵌入Markdown文档中 将图片嵌入Markdown文档中一直是一个比较麻烦的事情.通常的做法是将图片存入本地某个路径或者网络存储空间,使用URL链接的形式插入图片: ![image][ur ...