亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Jenkins FindBugs Warnings 警告類型文檔

2019-11-11 04:29:23
字體:
來源:轉載
供稿:網友

FindBugs Warnings 警告類型文檔

一、 

Type : EI_EXPOSE_REP

Category:MALICIOUS_CODE(惡意程序代碼)

描述:may exposeinternal rePResentation by returning  getter方法返回引用類型eclipse自動生成的引用類型(Object、數組、Date等)的getter、setter方法會得到或通過對可變對象的引用操作而暴露代碼內部實現,解決方法很多,只要返回的或賦值的對象不是原引用對象即可。

例如:

以Date類型為例:

private java.util.Datefirstdate;

publicvoidsetFirstdate(java.util.Datevalue) {

       this.firstdate =value;

    }

    public java.util.Date getFirstdate(){

       returnthis.firstdate;

    }

改為:

public String getFirstdate() {

       returnfirstdate;

    }

    publicvoidsetFirstdate(Stringfirstdate) {

       this.firstdate =firstdate;

    }

二、 

Type : EI_EXPOSE_REP2

Category:MALICIOUS_CODE(惡意程序代碼)

描述:may expose internal representation by storing an externallymutable object into  setter方法返回引用類型eclipse自動生成的引用類型(Object、數組、Date等)的getter、setter方法會得到或通過對可變對象的引用操作而暴露代碼內部實現,解決方法很多,只要返回的或賦值的對象不是原引用對象即可。

例如:

以Date類型為例:

private java.util.Datefirstdate;

publicvoidsetFirstdate(java.util.Datevalue) {

       this.firstdate =value;

    }

    public java.util.DategetFirstdate() {

       returnthis.firstdate;

    }

改為:

public String getFirstdate() {

       returnfirstdate;

    }

    publicvoid setFirstdate(Stringfirstdate) {

       this.firstdate =firstdate;

    }

 

三、 

Type : WMI_WRONG_MAP_ITERATOR

Category:PERFORMANCE(性能)

描述:使用keySet迭代器無效,請使用entrySet迭代器代替

解釋:很多人都這樣遍歷Map,沒錯,但是效率很低,先一個一個的把key遍歷,然后在根據key去查找value,這不是多此一舉么,為什么不遍歷entry(桶)然后直接從entry得到value呢?它們的執行效率大概為1.5:1(有人實際測試過)。

我們看看HashMap.get方法的源代碼:

publicV get(Object key) {

    if (key==null)

        returngetForNullKey();

    inthash=hash(key.hashCode());

    for (Entry<K,V> e =table[indexFor(hash,table.length)];e !=null;e = e.next) {

        Object k;

        if (e.hash ==hash&& ((k =e.key) == key || key.equals(k)))

            returne.value;

    }

    returnnull;

}

從這里可以看出查找value的原理,先計算出hashcode,然后散列表里取出entry,不管是計算hashcode,還是執行循環for以及執行equals方法,都是CPU密集運算,非常耗費CPU資源,如果對一個比較大的map進行遍歷,會出現CPU迅速飚高的現象,直接影響機器的響應速度,在并發的情況下,簡直就是一場災難。

四、 

Type : SE_BAD_FIELD_STORE

Category:BAD_PRACTICE

描述:不可序列化的值存儲在一個可序列化類的實例字段中

五、 

Type : SBSC_USE_STRINGBUFFER_CONCATENATION

Category:PERFORMANCE(性能)

描述:方法在一個循環中使用“+”運算符拼接字符串

解釋:每次循環里的字符串+連接,都會新產生一個string對象,在java中,新建一個對象的代價是很昂貴的,特別是在循環語句中,效率較低。

例如:

六、

Type : RV_RETURN_VALUE_IGNORED_BAD_PRACTICE 

Category:BAD_PRACTICE

描述:方法忽略異常的返回值

解釋:

關于一個方法邏輯執行是否成功,有兩種方式:

一種是拋出異常,一種是提供boolean類型的返回值。舉一個例子,用戶登錄,某些人將login方法的返回值定義為int,然后枚舉出各個值的含義,比如0代表成功,1代表用戶名不存在等等;而有些人,把這些枚舉值看成是use case中的異常流,將它們定義為異常對象,遇到“異?!鼻闆r直接拋出異常從而實現分支的流程。第一種方式是典型的C語言面向過程風格,

第二種方式,帶有強烈的面向對象味道,特別是java提供了checked Exception,貌似偏離主題了。

java中很多方法的執行成功依賴于異常的分支實現,但也有提供返回值的實現,比如這里的File.delete方法,上面的寫法忽略了返回值(如果調用某個方法卻不使用其返回值要特別注意),刪除一個文件很可能不成功,但是從代碼里并沒有看到這一層面的意思。

解決方法:

文件刪除不成功該怎么辦?現在能處理就處理,現在不能處理就把父類的方法也改成有返回值的,然后向上傳遞,這跟處理異常的道理是一樣的,當然,你也可以把它封裝成一個異常對象。

例如:

 

七、 

Type : OBL_UNSATISFIED_OBLIGATION_EXCEPTION_EDGE

Category:EXPERIMENTAL

描述:在處理異常時,方法可能未能成功清理流或資源

八、 

Type : NP_NULL_ON_SOME_PATH_EXCEPTION

Category:CORRECTNESS

描述:方法中的異常路徑上的可能的空指針解引用

例如:

九、 

Type : NP_LOAD_OF_KNOWN_NULL_VALUE

Category:STYLE

描述:加載已知為空的值

十、 

Type : NM_METHOD_NAMING_CONVENTION

Category:BAD_PRACTICE

描述:方法名應當以小寫字母開頭

十一、       

Type : NM_CLASS_NAMING_CONVENTION 

Category:BAD_PRACTICE

描述:類名應當以大寫字母開頭

十二、       

Type : EQ_DOESNT_OVERRIDE_EQUALS 

Category:STYLE

描述:類沒有覆蓋父類中的equals方法

十三、       

Type : EQ_COMPARETO_USE_OBJECT_EQUALS 

Category:BAD_PRACTICE

描述:類定義了compareTo(...)方法,使用了Object.equals()方法

解釋:

沒有使用instanceof判斷就直接轉型,有拋出classcastexception異常的可能。

這個BUG主題是,遵守約定(x.compareTo(y)==0) == (x.equals(y)),強烈建議,但不嚴格要求。

在return 0的時候,調用equals方法返回true,因為在PriorityQueue.remove方法中,1.5使用的是compareTo方法,而1.6使用的是equals方法,保證環境升級的時候,受影響最小。

解決方法:

         在return 0的時候,調用equals方法返回true

例如:

 

十四、       

Type : DMI_USING_REMOVEALL_TO_CLEAR_COLLECTION 

Category:BAD_PRACTICE

描述:不要使用removeAll方法清空一個集合

十五、       

Type : DM_NUMBER_CTOR 

Category:PERFORMANCE(性能)

描述:方法調用無效的Number構造器,請使用valueOf靜態方法代替

十六、       

Type : DM_NEXTINT_VIA_NEXTDOUBLE

Category:PERFORMANCE(性能)

描述:為了生成一個隨機整數,調用Random對象的nextInt方法,而不是nextDouble方法

十七、       

Type : DM_BOXED_PRIMITIVE_FOR_PARSING 

Category:PERFORMANCE(性能)

描述:使用封裝/反封裝來解析一個基本類型

例如1:

renturnRecord.setParts(Integer.valueOf(parts[i]));

處理:

renturnRecord.setParts(Integer.valueOf(parts[i]).intValue());

十八、     

Type : DLS_DEAD_LOCAL_STORE

Category:STYLE

描述:死存儲局部向量

解釋:

對本地變量定義了之后未使用到,編譯器能夠做優化處理,也就是在編譯之后的class文件中刪除這些本地變量。方法是在eclipse的Preferences里將以下的鉤去除:
解決方法:
      大膽的去掉或者注釋掉。
誤報的案例:
是一個局部的變量,不需要定義到外部去,定義在外部,可能會變成一個無效的變量。

例如:

 

十九、     

Type : BX_UNBOXING_IMMEDIATELY_REBOXED  

Category:PERFORMANCE(性能)

描述:反封裝已經封裝的值,然后又立即重新封裝

例如:

 

二十、     

Type : UUF_UNUSED_FIELD

Category:PERFORMANCE(性能)

描述:未使用字段

解釋:這個警告應該影響不大吧!

例如:

 

Type :

Category:

描述:

例如:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲电影中文字幕| 美女少妇精品视频| 国产成人精品a视频一区www| 中文字幕亚洲专区| 欧美性生活大片免费观看网址| 亚洲欧美中文在线视频| 亚洲成色999久久网站| 亚洲第一区中文99精品| 国产精品中文在线| 亚洲国产高清福利视频| 亚洲男人的天堂在线播放| 91免费的视频在线播放| 国产91精品久久久久久| 日韩电视剧在线观看免费网站| 欧美电影在线观看完整版| 欧美成人在线免费| 亚洲激情自拍图| 日韩在线观看免费全| 亚洲丝袜av一区| 亚洲精品电影在线| 国产精品自产拍在线观| 91九色国产视频| 91国语精品自产拍在线观看性色| 中文字幕欧美日韩va免费视频| 啪一啪鲁一鲁2019在线视频| 欧美裸体xxxxx| 久久免费福利视频| 亚洲九九九在线观看| 韩国精品美女www爽爽爽视频| 亚洲第一国产精品| 国产欧美一区二区三区四区| 亚洲女人天堂视频| 久久国产视频网站| 欧美精品国产精品日韩精品| 久久精品国产精品| 久久91亚洲精品中文字幕奶水| 国产一区二区三区中文| 日韩视频免费在线| 日韩成人中文电影| 久久这里只有精品99| 欧美尤物巨大精品爽| 亚洲第一区中文99精品| 国产精品欧美久久久| 国产精品va在线播放| 国产区精品视频| 97久久精品在线| 亚洲国产精品悠悠久久琪琪| 日本欧美爱爱爱| 亚洲系列中文字幕| 日韩精品在线影院| 国产精品专区h在线观看| 97精品一区二区视频在线观看| 国产亚洲成精品久久| 欧洲亚洲免费视频| 久久精品美女视频网站| 日产精品99久久久久久| 一区二区三区亚洲| 91高清视频免费观看| 国产精品老牛影院在线观看| 全亚洲最色的网站在线观看| 精品在线欧美视频| 久久久www成人免费精品| 麻豆国产精品va在线观看不卡| 国产美女精品免费电影| 久久久久久国产精品| 欧美午夜片欧美片在线观看| 亚洲免费影视第一页| 成人乱色短篇合集| 欧美成人精品在线视频| 91精品视频播放| wwwwwwww亚洲| 日韩精品一二三四区| 日本19禁啪啪免费观看www| 亚洲精品久久久久久下一站| 国产伊人精品在线| 亚洲第一免费网站| 色琪琪综合男人的天堂aⅴ视频| 热re91久久精品国99热蜜臀| 国产99视频精品免视看7| 国产在线拍偷自揄拍精品| 97超级碰碰碰久久久| 国产精品丝袜视频| 亚洲成av人片在线观看香蕉| 中文字幕欧美日韩在线| 欧美亚洲成人网| 国产精品h在线观看| 国产精品一区二区3区| 久久精品这里热有精品| 久久精品99久久久香蕉| 国产精品久久久久久久久免费| 国产偷国产偷亚洲清高网站| 亚洲精品自在久久| 色爱精品视频一区| 91视频国产精品| 精品久久久999| 亚洲精品欧美日韩专区| 国产噜噜噜噜久久久久久久久| 欧美乱人伦中文字幕在线| 日韩二区三区在线| 4438全国成人免费| 国产精品伦子伦免费视频| 992tv在线成人免费观看| 亚洲欧美制服综合另类| 欧美疯狂做受xxxx高潮| 亚洲第一精品自拍| 日韩免费视频在线观看| 久久理论片午夜琪琪电影网| 91性高湖久久久久久久久_久久99| 亚洲缚视频在线观看| 91热精品视频| 国产精品视频不卡| 欧美极品少妇xxxxⅹ裸体艺术| 久久视频在线观看免费| 亚洲午夜激情免费视频| 成人黄色av网站| 国产网站欧美日韩免费精品在线观看| 欧美日韩在线另类| 亚洲国产一区二区三区四区| 亚洲第一在线视频| 亚洲白虎美女被爆操| 成人黄色免费在线观看| 热草久综合在线| 伊人成人开心激情综合网| 欧美最顶级丰满的aⅴ艳星| 亚洲综合精品伊人久久| 国产一区二区日韩精品欧美精品| 亚洲天堂av在线免费观看| 欧美—级a级欧美特级ar全黄| 亚洲精品一区av在线播放| 亚洲一区中文字幕| 久久久视频精品| 亚洲欧美日韩在线高清直播| 国产欧美最新羞羞视频在线观看| 久久人人爽人人爽人人片亚洲| 亚洲丝袜一区在线| 亚洲国产精品999| 国产精品久久久久免费a∨大胸| 97超碰色婷婷| 青草热久免费精品视频| 精品自拍视频在线观看| 欧美日韩免费一区| 欧美性20hd另类| 久久精品久久久久久| 4438全国成人免费| 久久综合伊人77777蜜臀| 亚洲欧美资源在线| 午夜精品福利视频| 91地址最新发布| 欧美午夜激情小视频| 69视频在线播放| 日韩欧美中文在线| 亚洲电影成人av99爱色| 欧美日韩日本国产| 国产精品欧美一区二区| 亚洲欧美日韩精品| 色婷婷综合成人| 欲色天天网综合久久| 成人xxxx视频| 精品视频—区二区三区免费| 精品久久久久久中文字幕| www.亚洲免费视频| 亚洲欧美日韩爽爽影院| 精品偷拍各种wc美女嘘嘘| 国产精品福利在线观看|