Java¿ª·¢¹æ·¶£¨¹«Ë¾¹æ·¶£© ÏÂÔØ±¾ÎÄ

DataModule dmTest = new DataModule(); 2¡¢·½·¨ÃüÃû£ºÊ××Ö·ûӦСд public class Foo {

public void fooStuff() { } }

3¡¢ÀàÃüÃû£ºÊ××Ö·ûÓ¦´óд public class Foo {} 3.1.2

·½·¨µÄÃüÃûӦעÒâ±ÜÃâÓëjavaÖоßÓÐÌØÊâÒâÒåµÄÃû³ÆÀýÈçequals£¬hashCode£¬clone£¬finalizerµÈ³åÍ» ? ¹æ·¶ÃèÊö£º

ÔÚjavaÖÐijЩ·½·¨ÊǾßÓÐÌØÊâÒâÒåµÄ£¬ÀýÈçboolean equals(Object o)ÊDZȽÏÁ½¸ö¶ÔÏóÊÇ·ñÏàµÈ£»int hashCode()È¡µÃhashÖµ£¬Ö÷ÒªÓÃÓÚhash±í£»Object clone()ÓÃÓÚ¸´ÖƶÔÏó£»void finalizer()ÓÃÓÚ¸ÃÀàʵÀý»¯µÄ¶ÔÏóÊÍ·Åʱϵͳµ÷ÓÃÊͷŸöÔÏóʹÓõÄ×ÊÔ´¡£ÕâЩ·½·¨¾ßÓй̶¨µÄÐβθñʽ£¬¹Ì¶¨µÄ·µ»ØÖµ£¬²»Äܱ»ÆäËûÐÎʽ»òÕßÓÃÓÚÆäËû·½ÃæµÄ·½·¨override£¬·ñÔò½«½µµÍ´úÂë¿É¶ÁÐÔ£¬²¢Îª´úÂëά»¤´øÀ´Òþ»¼¡£

? PMD¹æÔòÃû³Æ£º

SuspiciousEqualsMethodName

SuspiciousHashcodeMethodName£»

FinalizeOverloaded£» BooleanGetMethodName£» ? ¹æÔò¼¶±ð£º

Error High Error High Error High Error High ? Î¥¹æÊ¾Àý´úÂ룺

1¡¢¿ÉÒɵÄequals·½·¨ÃüÃû public class Foo {

public int equals(Object o) {

// oops, this probably was supposed to be boolean equals }

public boolean equals(String s) {

// oops, this probably was supposed to be equals(Object) } }

2¡¢¿ÉÒɵÄhashCodeÃüÃû public class Foo {

public int hashCode(int value) {

// oops, this probably was supposed to be hashCode } }

? ºÏ·¨´úÂëʾÀý£º

1¡¢ÕýÈ·µÄequals·½·¨ÃüÃû public class Foo {

public boolean equals(Object o) {

// oops, this probably was supposed to be boolean equals } }

2¡¢ÕýÈ·µÄhashCodeÃüÃû public class Foo {

public int hashCode() {

// oops, this probably was supposed to be hashCode } }

×¢£ºÒ»°ãÀ´Ëµoverride hashCode·½·¨ÎªÁ˱ÜÃâ¼üÖµ³åÍ»£¬Ìá¸ßhash±íµÄ²éѯЧÂÊ£¬¿É²ÉÓÃ37³Ë·¨Ô­Ôò£¬ÀýÈçijjavabeanÖаüº¬Á½¸ö¹Ø¼üÊôÐÔstr1£¬str2£¬str3¸Ã¹Ø¼üÊôÐÔ²»ÄÜΪ¿Õ£¬ÕâÆähashÖµ°´ÒÔÏÂËã·¨»ñµÃ£ºstr1.hashCode()+str2.hashCode()*37+str3.hashCode()*37*37¡£ 3.1.3

Java beanÖÐÈ¡µÃbooleanÀàÐ͵ÄÊôÐÔÖµ±ØÐëʹÓÃis****ÐÎʽÃüÃû

? ¹æ·¶ÃèÊö£º

¶ÔÓÚjava beanÀ´Ëµ£¬get***ÊÇÈ¡µÃ¸ÃbeanµÄÊôÐÔÖµ£¬set***ΪÉèÖøÃbeanµÄÊôÐÔÖµ£¬is***ÊÇ»ñµÃ¸ÃbeanÖÐΪbooleanÀàÐ͵ÄÊôÐÔÖµ£¬ÕâЩ·½·¨¶Ôjava beanÀ´ËµÊǾßÓÐÌØÊâÒâÒ壬Èç¹ûÃüÃû²»¹æ·¶½«µ¼ÖÂÔÚʹÓÃjava beanÄÚÖ÷½·¨Ê±³öÏÖȡֵ£¬»òÕßÉèÖµ²»³É¹¦¡£ ? PMD¹æÔòÃû³Æ£º

BooleanGetMethodName ? ¹æÔò¼¶±ð£º

Error High ? Î¥¹æÊ¾Àý´úÂ룺

public boolean getFoo(); // bad ? ºÏ·¨´úÂëʾÀý£º

public boolean isFoo(); // ok

3.1.4 if,else,while,forµÈ±ØÐëʹÓÃ{}

? ¹æ·¶ÃèÊö£º

If,else,while,forµÈ·ÖÖ§Ñ­»·Óï¾ä£¬±ØÐëʹÓÃ{}½«ÒµÎñ´¦ÀíÂß¼­°üº¬ÔÚÄÚ£¬ÕâÑù¿É´ó´óÌá¸ß´úÂë¿É¶ÁÐÔ£¬ÓÐÀûÓÚºóÐø´úÂëά»¤¡£ ? PMD¹æÔòÃû³Æ£º

IfStmtsMustUseBraces WhileLoopsMustUseBraces IfElseStmtsMustUseBraces ForLoopsMustUseBraces ? ¹æÔò¼¶±ð£º

warn High

? Î¥¹æÊ¾Àý´úÂ룺 1¡¢ifÓï¾äÎ¥Àý´úÂë if (foo) x++;

2¡¢elseÓï¾äÎ¥Àý´úÂë if (foo) x++ else x--;

3¡¢whileÓï¾äÎ¥Àý´úÂë while(x<100) x++;

4¡¢forÓï¾äÎ¥Àý´úÂë for(int i=0;i<10;i++) x++;

? ºÏ·¨´úÂëʾÀý£º 1¡¢ifÓï¾ä if (foo){ x++; }

2¡¢elseÓï¾ä if (foo){ x++ }else{ x--; }

3¡¢whileÓï¾ä while(x<100){ x++; }

5¡¢forÓï¾ä

for(int i=0;i<10;i++){

x++; } 3.1.5

Àà±ØÐë°üº¬ÔÚ°üÀ½ûÖ¹³öÏÖÎÞ°üµÄÀà

? ¹æ·¶ÃèÊö£º

°üÊÇjavaÖÐÀàËùÔÚÃüÃû¿Õ¼ä£¬ÓÃÓÚÀàÔØÈëʱ£¬ÐéÄâ»ú¿ìËÙ¶¨Î»²¢²éÕÒ¸ÃÀࣻÈç¹ûÒ»¸öÎÞ°üÀ࣬ÔÚÀàÔØÈëʱ£¬ºÄʱ½Ï¶à£¬²¢ÇҺܿÉÄÜÎÞ·¨ÕÒµ½¸ÃÀà¡£ ? PMD¹æÔòÃû³Æ£º NoPackage ? ¹æÔò¼¶±ð£º error High 3.1.6

ÀàºÍ·½·¨±ØÐëÓµÓÐ×¢ÊÍ£¬×¢ÊÍÁ¿Õ¼×ÜÌå´úÂë25%ÒÔÉÏ£¬ÀàÍ·²¿£¬ÒÔ¼°·½·¨Í·²¿µÄ×¢ÊÍÓ¦·ûºÏjavadoc±ê×¼¡£ ? ¹æ·¶ÃèÊö£º

×¢ÊͶàÉÙÊÇÆÀ¼Û´úÂëÖÊÁ¿ºÃ»µµÄÒ»¸ö±ê×¼£¬25%ÊÇ·ûºÏ¹ú¼ÊÉ϶Ôjava×¢Ê͵ıê×¼£»¶ÔÓÚÀàÍ·²¿×¢ÊÍ£¬·½·¨Í·²¿×¢ÊÍ·ûºÏjavadoc±ê×¼£¬¿Éjava¹¤¾ß×Ô¶¯¸ù¾ÝÔ´ÂëÉú³ÉÏàÓ¦µÄjava°ïÖúÎĵµ¡£¶ÔÓÚÀàÍ·²¿×¢ÊÍÐèÒª°üº¬ÒÔÏÂÐÅÏ¢£º¸ÃÀàµÄÖ÷Óù¦ÄÜ£¬×÷Õߣ¬ÒÔ¼°´´½¨Ê±¼äµÈÐÅÏ¢£»¶ÔÓÚ·½·¨Í·²¿×¢ÊÍÐèÒª°üº¬ÒÔÏÂÐÅÏ¢£º¸Ã·½·¨µÄÖ÷Òª¹¦ÄÜ£¬ÒÔ¼°²ÎÊýÀàÐͺ¬Ò壬·µ»ØÖµÀàÐͺ¬ÒåµÈµÈ¡£ ? ºÏ·¨´úÂë×¢ÊÍʾÀý 1¡¢ÀàÍ·²¿×¢Ê͹淶

/**

* ʵʱÊý¾ÝÎļþ½âÎö:¶ÁȡʵʱÊý¾ÝÎļþ£¬¶ÔÆäÄÚÈݽøÐнâÎö£¬Éú³É·ûºÏ¸ñʽÒÔ¼°±ê×¼µ¥Î»µÄÊý¾Ý¼¯ºÏ

* @author wangliuyi * @version 1.0 * @since 2009-05-15 */

public class DataFileParse{ 2¡¢·½·¨Í·²¿×¢Ê͹淶

/**

* ÅжϸÃʱ¼äÊÇ·ñÔÚͳ¼ÆÊ±ÇøÀïÃæ

* @param time long ´Óʵʱ²É¼¯ÎļþÖÐÌáÈ¡µÄʱ¼ä£¬¸Ãʱ¼äΪ¸ñÁÖÍþÖÎʱ¼ä£¬µ¥Î»ÎªºÁÃë * @return boolean true£º±íʾ¸Ãʱ¼äÔںϷ¨µÄʱ¼äÇøÄÚ false£º±íʾ¸Ãʱ¼ä²»ºÏ·¨ */

public boolean checkStatTimeZone(long time)