一、FindBugs簡介(盜取百度知道)
二、安裝findbugs
1)選擇idea配置面板,我以mac爲例,windows是打開settings
2)選擇插件倉庫
3)輸入插件名稱,install即可,因爲我已安裝所以顯示restart
4)如果安裝或下載失敗,也可以自己進行下載插件後安裝,選擇你要的版本
官網地址:https://plugins.jetbrains.com/plugin/3847?pr=idea
但是需要注意你的idea版本,官網有特別說明
三、使用小測
我也剛開始使用,功能還在探索之中,以下是我以前寫的一個測試用例,安裝完成了先來搞一下看看
package com.yeepay.g3.app.watch.Array;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
/**
* 類名稱: ArrayList <br>
* 類描述: <br>
*
* @author: hua.jin
* @since: 16/8/18 下午3:15
* @version: 1.0.0
*/
public class ArrayListMemo {
public static void main(String[] args) throws IOException {
Runtime run = Runtime.getRuntime();
run.gc();
System.out.println("time: " + (new Date()));
// 獲取開始時內存使用量
long startMem = run.totalMemory() - run.freeMemory();
System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + startMem);
ArrayList list = new ArrayList();
int size = 10000000;
int i = 0;
try {
list.ensureCapacity(size);// 是否擴容
for (; i < size; i++) {
list.add(i);
}
} catch (Throwable e) {
e.printStackTrace();
System.out.println("i= " + i);
}
System.out.println("time: " + (new Date()));
long endMem = run.totalMemory() - run.freeMemory();
System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + endMem);
System.out.println("memory difference:" + (endMem - startMem));
}
}
1)選中你要檢測類進行右鍵操作
2)確認檢測
3)彈出檢測結果
4)信息內容
a) compiler issues,編譯器問題。感覺就是一些警告信息,待確認的信息
因爲我在創建list的時候沒有設置參數類型,但是添加信息確是數字
ArrayList list = new ArrayList();
b) javadoc 問題暫時沒出有用信息
c) probable bugs 重點來了
由於我只是測試arraylist的擴容問題,所以並未對list的結果有任何應用,所以提示bug如下
contents of collection 'list' are updated,but never queried at line 26
四、bug修復如下
package com.yeepay.g3.app.watch.Array;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Date;
/**
* 類名稱: ArrayList <br>
* 類描述: <br>
*
* @author: hua.jin
* @since: 16/8/18 下午3:15
* @version: 1.0.0
*/
public class ArrayListMemo {
public static void main(String[] args) throws IOException {
Runtime run = Runtime.getRuntime();
run.gc();
System.out.println("time: " + (new Date()));
// 獲取開始時內存使用量
long startMem = run.totalMemory() - run.freeMemory();
System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + startMem);
<span style="color:#FF0000;"> ArrayList<Integer> list = new ArrayList<Integer>();</span>// 添加類型
int size = 10000000;
int i = 0;
try {
list.ensureCapacity(size);// 是否擴容
for (; i < size; i++) {
list.add(i);
}
} catch (Throwable e) {
e.printStackTrace();
System.out.println("i= " + i);
}
<span style="color:#FF0000;"> System.out.println("size: " + list.size());</span>// 修改信息之後引用輸出
System.out.println("time: " + (new Date()));
long endMem = run.totalMemory() - run.freeMemory();
System.out.println("memory> total:" + run.totalMemory() + " free:" + run.freeMemory() + " used:" + endMem);
System.out.println("memory difference:" + (endMem - startMem));
}
}
檢測結果如下:
學習使用中,後續使用過程中持續更新