zoukankan      html  css  js  c++  java
  • FindBugs的安装和使用

    一.下载和安装

        FindBugs是一个能静态分析源代码中可能会出现Bug的Eclipse插件工具。

       1.打开Eclipse-->Help-->Eclipse Marketplace 搜索Findbugs 选择FindBugs Eclipse Plugin,点击Install安装,安装完成后重启Eclipse

         

    2.使用FindBugs

      1)在Eclipse-->Windows-->Show View-->Other 选择Bug Exploer, 这里会显示我们执行第二步找出的Bug

      2)右键java文件或整个项目,选择Find Bugs-->Find Bugs

    3.Bug举例

       

       1)string 对象之间比较不能用== 和 != ( Comparison of String objects using == or !=)

    public String validatecode() {
    //        System.out.println(code);
            String validateCode = (String)ActionContext.getContext().getSession()
                    .get("validateCode");
    //        System.out.println(validateCode);
            if (code == validateCode) {
                result = null;
            } else
                result = "验证码错误";
            return SUCCESS;
        }

    2)getDigest()是MD5Encrypt类的静态方法,无需new一个对象再调用

    MD5Encrypt encrypt=new MD5Encrypt();
    		 String fodUsrPwd=encrypt.getDigest(user.getUsrPwd());//对用户密码进行加密
    

    3)有可能返回是的null ,空指针异常

    List <Task> list = query.list();
    
    		if(list.size()==0){}
    
     
    4)问题原因:flag 是类的静态成员变量,非静态方法setFlag直接对其赋值,非静态方法是与对象相关联的,当多个对象同时对该变量进行赋值时可能出现问题。解决方法:在使用静态成员变量时使用get和set方法。
     
    private  static boolean flag = false; 
    public String setFlag(){
    		flag = false;
    		return null;
    	}
    

      

       4)参考

         findbugs能帮我们找出代码中存在的风险,但是不一定所有bug是必须修改的,需要我们自己根据实际代码去做判断,一下是findbugs常见的清理问题

        http://blog.csdn.net/wzy0467/article/details/8477175

      

  • 相关阅读:
    Freemarker与Springmvc
    Freemarker与普通java
    Freemarker与Servlet
    跳舞的时间插件
    video标签播放视频
    字符串反转
    菲波拉契数列
    求所有子数组的和的最大值
    Spring AOP 5种通知与java动态代理
    线程维护日志队列
  • 原文地址:https://www.cnblogs.com/yyh19890221/p/3094410.html
Copyright © 2011-2022 走看看