FindBugsÊÇÒ»¿î¾²Ì¬·ÖÎöEclipseÈí¼þרÓù¤¾ß£¬FindBugsÄܹ»°ïÖú´ó¼Ò²éÕÒJavaÈí¼þÖпÉÄÜ·¢ÉúµÄbug¡£Á¢¼´²éÕÒ¿ÉÄܳöÏֵĿÕÒýÈë¡¢¶àÓà×Ô±äÁ¿µÈ²»ÕýÈ·¡£

1 ¡¢ÕÒµ½hash equals²»Ò»ÖÂ
ÕÒÓëequals()ºÍhashCode()µÄÍê³ÉÓйصÄһЩÎÊÌâ¡£ÕâÁ©·½·¨ÖÁ¹ØÖØÒª£¬ÓÉÓÚ¾ø´ó¶àÊý¸ù¾Ý½áºÏµÄÀà---List¡¢Map¡¢SetµÈ¶¼µ÷ÓÃËûÃÇ¡£
2¡¢¼ìÑ飺ºöÊÓ·½·¨´«²Î
Õâһ̽²âÆ÷²éÕÒ±àÂëÖкöÊÓÁ˲»Ó¦¸Ã±»ºöÂԵķ½·¨´«²ÎµÄÇøÓò¡£ÕâЩÎÊÌâµÄÒ»¸öÆÕ±éÊÂÀýÒªÔÚµ÷ÓÃString·½·¨Ê±¡£
ÕâÒ»²»ÕýÈ·±È½Ï³£¼û¡£ÓÚµÚ2ÐУ¬³ÌÐòÔ³¾õµÃËûÒÑÓÃp¸ü»»ÁË×Ö·û´®ÖÐËùÓÐb¡£µÄÈ·ÊÇÕâÑù£¬¿ÉÊÇËûÍüÁË×Ö·û´®ÊÇÎÞ·¨±äµÃ¡£È«²¿ÕâÖÖ·½·¨¶¼»Øµ½Ò»¸öÐÂ×Ö·û´®£¬¶ø´Ó²»¸ü¸ÄÐÅÏ¢µÄ½ÓÊÜÕß¡£
3¡¢¼ìÑ飺NullÖ¸¶ÔÓÚnullµÄ½âÒýÓã¨dereference£©ºÍ¶àÓà½ÏΪ
Õâһ̽²âÆ÷²éÕÒÁ½´óÀàÄÑÌâ¡£Ëü²éÕÒ±àÂë;¾¶¿ÉÄÜ»òÊÇ¿ÉÄܵ¼ÖÂnull±íÕëÒì³£×´¿ö£¬ËüÒ²²éÕÒ¶ÔnullµÄ¶àÓàÏà¶Ô±È½Ï×´¿ö¡£±ÈÈ磬Èç¹ûÁ½±È½ÏÖµ¾ùΪnull£¬ÄÇÑùËûÃDZãÊǶàÓàµÄÕâ¿ÉÄÜ»á˵Ã÷´úÂë´íÎó¡£FindBugsÔÚ¿ÉÒÔÖªµÀÒ»¸öÊýÖµnull¶øÁíÒ»¸öÖµ²»ÒÔnullʱ£¬¼ìÑéÏà½ü´íÎó¡£
4¡¢¼ìÑ飺¸´Î»ÒÔÇ°ÔØÈë×Ö¶ÎÃû
Õâһ̽²âÆ÷̽ѰÔÚ¹¹Ôì·½·¨Öи´Î»Ôø¾±»ÔØÈëµÄ×Ö¶ÎÃû¡£ÕâÒ»²»ÕýÈ·Ò»°ãÊÇÓÉÓ¦ÓÃ×ֶζø·Ç½á¹¹º¯Êýµ÷ÓÃËùÒýÆðµÄ£¬±ÈÈçÔÚ¶ÔÏóÖÐÔØÈëδ³õʼ»¯µÄ×Ö¶ÎÃû¡£
5¡¢È¡Ãû¼ì²é
¶Ô¹æ·¶JavaÖ¸Áî¹æ·¶»¯µÄ¼ì²â£º±äÁ¿Ãû³Æ²»¿É¹ý¶Ì£»·½·¨Ãû×Ö²»¿ÉÌ«³¤£»ÀàÃû×ÖÓ¦¸ÃÒÔСд¿ªÊ¼£»·½·¨ºÍ×Ö¶ÎÓ¦¸ÃÒÔСд¿ªÊ¼£¬µÈ¡£
6¡¢Ã»ÓÐʹÓôúÂë¼ì²é
²éÕÒ´ÓûËùʹÓõÄ˽×ֶκͱ¾µØ±äÁ¿¡¢ÊµÐв»Éϵľä×Ó¡¢´Óûµ÷ÓõÄ˽·½·¨£¬µÈ¡£
7¡¢Ç¶Èë¼ì²é
±ÈÈ磺switch¾ä×ÓÓ¦¸Ã¾ßÓÐdefault¿é£¬ÀíÓ¦·ÀÖ¹Éî²ãǶÈëµÄif¿é£¬²»Ó¦¸Ã¸øÖ÷Òª²ÎÊýÔÙ´Îȡֵ£¬²»Ó¦¸Ã¶ÔdoubleÖµ¿ªÕ¹Ïàͬ½ÏΪ¡£
8¡¢µ¼½ø¾ä×Ó¼ì²é
¼ì²éimport¾ä×ÓÎÊÌ⣬ÀýÈçͬһ¸öÀà±»µ¼½ø2´Î»òÊDZ»µ¼½øjava.langµÄÀàÖС£
9¡¢JUnit¼ì²â¼ì²é
²éÕÒ¹¦ÄܲâÊÔºÍÑéÖ¤·½·¨µÄÌØÊâÄÑÌ⣬±ÈÈç·½·¨Ãû³ÆÇ¡µ±Æ´¶Á£¬¼°Æäsuite()·½·¨ÊÇ·ñstaticºÍpublic¡£
10¡¢×Ö·û´®¼ì²é
ÕÒµ½½â¾ö×Ö·û´®¹ý³ÌÖÐÓöµ½µÄÒÉÄÑÎÊÌ⣬±ÈÈçÖØ¸´×Ö·û´®±êÁ¿£¬µ÷ÓÃString¶ÔÏ󣬶ÔString×Ô±äÁ¿µ÷ÓÃtoString()·½·¨¡£
11¡¢À¨»¡¼ì²é
¼ì²éfor¡¢if¡¢whileºÍelseÓï¾äÊDz»ÊDzÉÓÃÁËÀ¨»¡¡£
12¡¢±àÂë¹æ¸ñ¼ì²é
¼ì²â½Ï³¤µÄ·½·¨¡¢ÓкܶàµÄ·½·¨µÄÀ༰ÆäÖØÐ¹¹½¨µÈ·½ÃæµÄÀàËÆÇé¿ö¡£
13¡¢½áÊøº¯Êý¹«Ê½¼ì²é
±Ï¾¹ÔÚJavaÓïÑÔÖУ¬finalize()·½·¨²¢²»ÊÇÄÇô¹ã·º£¬ËüÃÇʹÓù淶¾¡¹ÜºÜ×Ðϸ£¬µ«ÈËÃǶÔÕâЩÏà¶ÔÐÔ²»Ì«ÊìϤ¡£ÕâÖÖ¼ì²é²éÕÒfinalize()·½·¨µÄһϵÁÐÎÊÌ⣬±ÈÈç¿Õ½áÊøº¯Êý¹«Ê½£¬µ÷ÓñðµÄ·½·¨µÄfinalize()·½·¨£¬¶Ôfinalize()µÄÏÔʽµ÷Ó㬵ȡ£
14¡¢¸´ÖƼì²é
ÓÃÒÔclone()·½·¨µÄй档µ«·²ÖØÐÂд¹ýclone()·½·¨µÄÀà¶¼±ØÐëÒªÍê³ÉCloneable£¬clone()·½·¨Ó¦µ±µ÷ÓÃSuper.clone()£¬¶øclone()·½·¨Ó¦µ±ÉêÃ÷Å׳öÈ¥CloneNotSupportedException³öÏÖÒì³££¬¼´±ãÊÂʵÉϲ¢Ã»ÓÐÅ׳öÒì³££¬Ò²ÐèÒªÕâ°ã¡£
15¡¢ÅººÏ¼ì²é
²éÕÒÀàÖмä¹ý¶àźºÏµÄÕ÷Õ×£¬ÀýÈçµ¼½ø¾ßÌåÄÚÈݹý¶à£»ÔÚ³¬ÖÖÀà»ò²å¿Ú¾Í¹»ÓõÄʱºòÓÃÅÉÉúÀàµÄÖÖÀࣻÀàÖеÄ×ֶΡ¢×Ô±äÁ¿ºÍ·µ»ØÀàÐÍÌ«¶àµÈ¡£
16¡¢³öÏÖÒì³£¼ì²é
¶ÔÓÚÒì³£¼ì²é£º²»Ó¦¸ÃÉêÃ÷¸Ã·½·¨¶øÅ׳öÈ¥java.lang.Exception³öÏÖÒì³££¬²»Ó¦¸Ã½«³öÏÖÒì³£ÓÃÒÔÁ÷¿ØÖÆ£¬²»Ó¦¸Ã²¶×½Throwable£¬µÈ¡£
17¡¢ÈÕÖ¾¼ì²é
²éÕÒjava.util.logging.LoggerµÄ²»ÕýÈ·Ó¦Ó㬰üº¬·ÇÖÕÇé¿ö£¨nonfinal£©¡¢·Ç¾²Ö¹µÄ¼Ç¼Èí¼þ£¬¼°ÔÚÒ»¸öÀຬÓкü¸¸ö¼Ç¼Èí¼þ¡£
18¡¢Open¡ªClose¼ì²é
¼ì²éÎļþºÍͨÐŲãÃæ£¬ÊDz»ÊÇÍüµôCloseµÄÏÖÏó¡£
19¡¢ÆäËû¼ì²é
ÆäËûȱµãÃ÷ϸ¿É²ÎÕÕ£ºÈ±µãÃ÷ϸ¡£
20¡¢½¨Á¢×Ô¼ºµÄ¹æÔò¼¯
Äܹ»½¨Á¢×Ô¼ºµÄ¹æÔò¼¯¡£
¡¾Ó¦Ó÷½·¨¡¿
Ãâ·ÑÏÂÔØÒԺ󣬰ѻº½âѹÁ¦ºóÎļþ¿½±´µ½ $ECLIPSE_HOME/plugins/Ŀ¼Ï£¬ÖØÆôeclipse¼´½øÐÐ×é×°¡£
1¡¢Èí¼þÉèÖãº
×°ºÃÒÔºó£¬ÄÜͨ¹ý Projects gt; Property gt; FindBugs±êʶ¶ÔËü½øÐÐÉ趨¡£É趨·½·¨Òª¸ù¾Ý×Ô¼ºµÄ±ØÐë×÷³öµ÷Õû¡£
ͬʱÔÚ ÄÑÌâ(Proplems)Ŀ¼¶Ô»°¿ò(windows gt; Ö÷ÊÓͼ gt; ÄÑÌâ)µÄFilterÉèÖÃÖУ¬°ÑFindBugsµÄÏà¹ØÑ¡ÔñÏî¶¼checkÉÏ¡£
2¡¢Èí¼þµÄÂäʵ£º
Ñ¡¶¨ ËùÊôÐÂÏîÄ¿£¬Êó±êµã»÷ gt; Find Bugs gt; Find BugsʵÐÐ
Ïà¹Ø¹¥ÂÔ
¶ÔÔâÊÜ»òÕß¿ÉÄÜÔâÊܼ±ÐÔÖ°Òµ²¡Î£º¦µÄÀͶ¯Õߣ¬ÓÃÈ˵¥Î»Ó¦µ±¼°Ê±×éÖ¯¾ÈÖΡ¢½øÐн¡¿µ¼ì²éºÍҽѧ¹Û²ì£¬ËùÐè·ÑÓÃÓÉ£¨£©¡£
Ö°Òµ²¡Õï¶Ï¡¢¼ø¶¨·ÑÓÃÓÉ£¨£©³Ðµ£¡£
¡°¶«·ç²»ÓëÖÜÀɱ㣬Íȸ´ºÉîËø¶þÇÇ¡£¡±³öÓÚ˵Äʫƪ£¿
²ÂÒ»²ÂÍÞÍÞÐÞ¸´Ê¦µÄ¹¤×÷Ö÷ÒªÊÇ£¿
³ÂÊÙ¡¶Èý¹úÖ¾¡·Öеġ°Îå×ÓÁ¼½«¡±·Ö±ðÖ¸µÄÊÇÓÚ½û£¬ÀÖ½ø£¬Ðì»Î£¬ÕÅàAºÍË£¿
¡¶Èý¹úÑÝÒå¡·ÖУ¬ºò³ÉµÁ×ß³àÍÃÂí£¬ÇëÎÊËû°Ñ³àÍÃÂíË͸øÁËË£¿
¡¶Ë®ä°´«¡·¡°·çѩɽÉñÃí¡±Ò»ÕÂÖнǫ£¬±»ÆÈÉÏÁºÉϵÄÈËÊÇË£¿
ÖйúÏ·¾çÖеÄÎ佫±³ºó²åµÄ¿¿ÆìÓм¸Ã棿
Ìá³öÁË¡°ÖªÐкÏÒ»¡±µÄÀíÂÛÀ´·¢Õ¹¡°ÐÄѧ¡±µÄÊÇË
Á÷ÐÐÓÚÆß°ËÊ®Äê´úµÄСÈËÊéµÄѧÃûÓÖ½Ðʲô£¿
Ïà¹Ø×¨Ìâ
¶àÌØÈí¼þרÌâΪÄúÌṩÃÀÅ®ÊÓÆµapp,ÐßÐßɫԺapp;°²×¿Æ»¹û°æÈí¼þappÒ»Ó¦¾ãÈ«¡£¶àÌØÈí¼þÕ¾Ö»ÌṩÂÌÉ«¡¢ÎÞ¶¾¡¢ÎÞ²å¼þ¡¢ÎÞľÂíµÄ´¿ÂÌÉ«¹¤¾ßÏÂÔØ
2024×îÐÂÃâ·Ñ2dÓÎÏ·ÓÐÄÄЩ?²»¶Ï¸üÐÂ×îÐÂÃâ·Ñ2dÓÎÏ·´óÈ«£¬Öڶ಻ͬ·ç¸ñÀàÐÍ×îÐÂÃâ·Ñ2dÓÎÏ·ÏÂÔØ£¬ÏÂÔØÍæÍæ¿´°É!
¶àÌØÈí¼þÕ¾Ìṩ¿Ú´üÓ°ÔºÀàÈí¼þ¶à¸ö°æ±¾ÒÔ¼°¶à¸öͬÀàÈí¼þ¸ßËÙÏÂÔØµØÖ·£º°²×¿°æ¡¢Æ»¹û°æ¡¢µçÄÔ°æµÈ¹Ù·½Õýʽ°æÃâ·ÑÈí¼þÏÂÔØ£¬ÎÒÃÇÖ»ÌṩÂÌÉ«¡¢ÎÞ¶¾¡¢ÎÞ²å¼þ¡¢ÎÞľÂíÈí¼þÏÂÔØ£¬Ó°ÊÓ×ÊÔ´¾¡ÔÚÕâÀÈÃÄãÏíÊܽ«¶ÔËùÓеĵçÓ°ÎÕÔÚÊÖÐÄÀïµÄ¸Ð¾õ.ÈÃÄãÔÚµÚһʱ¼ä¾ÍÄÜÊÕ¿´µ½ÊÕ¿´µ½ÄãÏë¿´µÄ×ÊÔ´
ÍÆ¼ö¼¸¿î·Ç³£ºÃÍæµÄµ¥»ú°æÕ½ÕùÓÎÏ·£¬ÊÖ»úÉϷdz£ºÃÍæµÄÕ½ÕùÓÎÏ·µ¥»ú°æ¶¼ÔÚÕâÀïÍÆ¼ö¸ø´ó¼ÒÁË£¬Ï²»¶µÄÅóÓѲ»ÒªÔÚÓÌÔ¥£¬¿ìÀ´ÏÂÔØ°É¡£
Õ½ÕùÓÎÏ·Ìâ²ÄÊÇÓÎÏ·Öзdz£¾ªÏմ̼¤µÄÒ»ÖÖ£¬ÕâÀï¸ø´ó¼Ò´øÀ´ÁËÕ½ÕùÓÎÏ·ÅÅÐУ¬°ïÖú´ó¼ÒÕÒµ½·Ç³£ºÃÍæµÄÕ½ÕùÓÎÏ·£¬Ï²»¶µÄÅóÓÑ¿ìÀ´ÏÂÔØ°É¡£
ͬÀàÅÅÐÐ
×î½ü¸üÐÂ