Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
JavaÐÔÄܵ÷ÓÅ
 
×÷Õߣº°ÁÂýµÄÉÏУ À´Ô´£ºCSDN ·¢²¼ÓÚ 2015-9-23
  2335  次浏览      27
 

дJavaÒ²ÓÐnÄêÁË£¬ÏÖÔÚ»¹ÊÇÓв»ÉٵϵµÄ´úÂëϰ¹ß£¬Ò²Í¨¹ýѧϰ±ðÈ˵ĴúÂëѧµ½Á˲»ÉٺõÄϰ¹ß¡£ÕâÆªÎÄÕÂÖ÷ÒªÊÇÕûÀíµÄ×ÊÁÏ¡£Áô¸ø×Ô¼º×ö¸ö¾¯½ä£¬ÌáʾÒÔºóд´úÂëµÄʱºò×¢Ò⣡ÔÚÎÄÕµĺóÃæ£¬»áÌṩÕûÀíµÄÔ­²ÄÁÏÏÂÔØ¡£

Ò»¡¢ÀàºÍ¶ÔÏóʹÓü¼ÇÉ

1¡¢¾¡Á¿ÉÙÓÃnewÉú³ÉжÔÏó

ÓÃnew´´½¨ÀàµÄʵÀýʱ£¬¹¹ÔìÓêÊýÁ´ÖÐËùÓй¹Ô캯Êý¶¼»á±»×Ô¶¯µ÷Ó㬲Ù×÷ËٶȽÏÂý¡£ÔÚijЩʱºò¿É¸´ÓÃÏÖÓжÔÏó¡£±ÈÈçÔÚ½øÐдóÁ¿St rillg²Ù×÷ʱ£¬¿ÉÓÃStringBuffer¦´úÌæStringÀ࣬ÒÔ±ÜÃâÉú³É´óÁ¿µÄ¶ÔÏó¡£Óà new¹Ø¼ü´Ê´´½¨ÀàµÄʵÀýʱ£¬¹¹Ô캯ÊýÁ´ÖеÄËùÓй¹Ô캯Êý¶¼»á±»×Ô¶¯µ÷Óᣵ«Èç¹ûÒ»¸ö¶ÔÏóʵÏÖÁË Cloneable ½Ó¿Ú£¬ÎÒÃÇ¿ÉÒÔµ÷ÓÃËýµÄ clone() ·½·¨¡£clone()·½·¨²»»áµ÷ÓÃÈκÎÀ๹Ô캯Êý¡£

ÏÂÃæÊÇ Factory ģʽµÄÒ»¸öµäÐÍʵÏÖ¡£

public static Credit getNewCredit() 
{
return new Credit();  
}

¸Ä½øºóµÄ´úÂëʹÓà clone() ·½·¨£¬

private static Credit BaseCredit = new Credit();   
public static Credit getNewCredit()
{
return (Credit)BaseCredit.clone();
}

2¡¢Ê¹ÓÃclone()·½·¨Éú³ÉжÔÏó

Èç¹ûÒ»¸ö¶ÔÏóʵÏÖCloneable½Ó¿Ú£¬¾Í¿ÉÒÔµ÷ÓÃËüµÄclone()·½·¨¡£clone()·½·¨²»»áÀáÓÃÈκÎÀ๹Ô캯Êý£¬±ÈʹÓÃnew·½·¨´´½¨ÊµÀýËÙ¶ÈÒª¿ì¡£

3¡¢¾¡Á¿Ê¹Óþֲ¿±äÁ¿£¨Õ»±äÁ¿£©

µ÷Ó÷½·¨Ê±´«µÝµÄ²ÎÊý¼°µ÷ÓÃÖд´½¨µÄÁÙʱ±äÁ¿±£´æÔÚÕ»(Stack)ÖУ¬ËٶȽϿ졣ÆäËû±äÁ¿£¬È羲̬±äÁ¿¡¢ÊµÀý±äÁ¿¶¼ÔÚ¶Ñ(HeaP)Öд´½¨£¬ËٶȽÏÂý¡£·ÃÎʾ²Ì¬±äÁ¿ºÍʵÀý±äÁ¿½«»á±È·ÃÎʾֲ¿±äÁ¿¶àºÄ·Ñ 2-3 ¸öʱÖÓÖÜÆÚ¡£Èç¹ûÒ»¸ö±äÁ¿ÐèÒª¾­³£·ÃÎÊ£¬ÄÇôÄã¾ÍÐèÒª¿¼ÂÇÕâ¸ö±äÁ¿µÄ×÷ÓÃÓòÁË¡£static? local?»¹ÊÇʵÀý±äÁ¿£¿

µ÷Ó÷½·¨Ê±´«µÝµÄ²ÎÊýÒÔ¼°ÔÚµ÷ÓÃÖд´½¨µÄÁÙʱ±äÁ¿¶¼±£´æÔÚÕ»£¨Stack£©ÖУ¬ËٶȽϿ졣ÆäËû±äÁ¿£¬È羲̬±äÁ¿£¬ÊµÀý±äÁ¿µÈ£¬¶¼ÔÚ¶Ñ£¨Heap£©Öд´½¨£¬ËٶȽÏÂý¡£

Àý×Ó£º

public class usv {   
void getsum (int[] values) {
for (int i=0; i < value.length; i++) {
_sum += value[i]; // violation.
}
}
void getsum2 (int[] values) {
for (int i=0; i < value.length; i++) {
_staticsum += value[i];
}
}
private int _sum;
private static int _staticsum;
}

¸üÕý£ºÈç¹û¿ÉÄÜ£¬ÇëʹÓþֲ¿±äÁ¿×÷ΪÄã¾­³£·ÃÎʵıäÁ¿¡£ Äã¿ÉÒÔ°´ÏÂÃæµÄ·½·¨À´ÐÞ¸Ä getsum()·½·¨£º

void getsum (int[] values) {   
int sum = _sum; // temporary local variable.
for (int i=0; i < value.length; i++) {
sum += value[i];
}
_sum = sum;

4¡¢¼õÉÙ·½·¨µ÷ÓÃ

ÃæÏò¶ÔÏóÉè¼ÆµÄÒ»¸ö»ù±¾×¼ÔòÊÇͨ¹ý·½·¨¼ä½Ó·ÃÎʶÔÏóµÄÊôÐÔ£¬µ«·½·¨µ÷ÓûáÕ¼Óá¤Ð©¿ªÏú·ÃÎÊ¡£¿ÉÒÔ±ÜÃâÔÚͬһ¸öÀàÖÐͨ¹ýѵÖݺ¯Êý»ò·½·¨(get»òset)À´ÉèÖûòµ÷ÓøöÔÏóµÄÔÖÀý±äÁ¿£¬Õâ±ÈÖ±½Ó·ÃÎʱäÁ¿ÒªÂý¡£ÎªÁ˼õÉÙ·½·¨µ÷Ó㬿ÉÒÔ½«·½·¨ÖеĴúÂë¸´ÖÆµ½µ÷Ó÷½·¨µÄµØ·½£¬±ÈÈç´óÁ¿µÄÑ­»·ÖУ¬ÕâÑù¿ÉÒÔ½ÚÊ¡·½·¨µ÷ÓõĿªÏú¡£µ«´øÀ´ÐÔÄÜÌáÉýµÄͬʱ»áÎþÉü´úÂëµÄ¿É¶ÁÐÔ£¬¿É¸ù¾Ýʵ¼ÊÐèҪƽºâÁ½Õß¹ØÏµ¡£

5¡¢Ê¹ÓÃfinalÀàºÍfinal¡¢static¡¢private·½·¨

´øÓÐfinalÐÞÊηûµÄÀàÊDz»¿ÉÅÉÉúµÄ¡£Èç¹ûÖ¸¶¨Ò»¸öÀàΪfinaI£¬Ôò¸ÃÀàËùÓеķ½·¨¶¼ÊÇfinal¡£JAVA±àÕÏÆ÷»áѰÕÒ»ú»áÄÚÁª(inIine)ËùÓеÄfinal·½·¨¡£´Ë¾ÙÄܹ»ÌáÉý³ÌÐòÐÔÄÜ¡£Ê¹ÓÃfinal¡¢static¡¢privateµÄ·½·¨ÊDz»Äܱ»¸²¸ÇµÄ£¬JAVA²»ÐèÒªÔÚïûÐòÔËÐеÄʱºò¶¯Ì¬¹ØÁªÊµÏÖ·½·¨£¬´Ó¶ø½ÚÊ¡ÁËÔËÐÐʱ¼ä¡£

´øÓÐ final ÐÞÊηûµÄÀàÊDz»¿ÉÅÉÉúµÄ¡£ÔÚ JAVAºËÐÄ APIÖУ¬ÓÐÐí¶àÓ¦Óà final µÄÀý×Ó£¬ÀýÈç java.lang.String¡£Îª String ÀàÖ¸¶¨ final ·ÀÖ¹ÁËʹÓÃÕ߸²¸Ç length()·½·¨¡£ÁíÍ⣬Èç¹ûÒ»¸öÀàÊÇ final µÄ£¬Ôò¸ÃÀàËùÓз½·¨¶¼ÊÇ final µÄ¡£java ±àÒëÆ÷»áѰÕÒ»ú»áÄÚÁª£¨inline£©ËùÓеÄfinal ·½·¨£¨ÕâºÍ¾ßÌåµÄ±àÒëÆ÷ʵÏÖÓйأ©¡£´Ë¾ÙÄܹ»Ê¹ÐÔÄÜÆ½¾ùÌá¸ß 50%¡£

6¡¢È÷ÃÎÊʵÀýÄÚ±äÁ¿µÄ getter/setter ·½·¨±ä³É¡±final¡±

¼òµ¥µÄ getter/setter ·½·¨Ó¦¸Ã±»ÖÃ³É final£¬Õâ»á¸æËß±àÒëÆ÷£¬Õâ¸ö·½·¨²»»á±»ÖØÔØ£¬ËùÒÔ£¬¿ÉÒÔ±ä³É¡±inlined¡±

Àý×Ó£º

class maf {   
public void setsize (int size) {
_size = size;
}
private int _size;
}

¸üÕý£º

class daf_fixed {   
final public void setsize (int size) {
_size = size;
}
private int _size;
}

7¡¢±ÜÃâ²»ÐèÒªµÄ instanceof ²Ù×÷

Èç¹û×ó±ßµÄ¶ÔÏóµÄ¾²Ì¬ÀàÐ͵ÈÓÚÓұߵģ¬instanceof ±í´ïʽ·µ»ØÓÀԶΪ true¡£

Àý×Ó£º

public class uiso {   
public uiso () {}
}
class dog extends uiso {
void method (dog dog, uiso u) {
dog d = dog;
if (d instanceof uiso) // always true.
system.out.println("dog is a uiso");
uiso uiso = u;
if (uiso instanceof object) // always true.
system.out.println("uiso is an object");
}
}

¸üÕý£ºÉ¾µô²»ÐèÒªµÄ instanceof ²Ù×÷¡£

class dog extends uiso {   
void method () {
dog d;
system.out.println ("dog is an uiso");
system.out.println ("uiso is an uiso");
}
}

8¡¢±ÜÃâ²»ÐèÒªµÄÔìÐͲÙ×÷

ËùÓеÄÀà¶¼ÊÇÖ±½Ó»òÕß¼ä½Ó¼Ì³Ð×Ô object¡£Í¬Ñù£¬ËùÓеÄ×ÓÀàÒ²¶¼Òþº¬µÄ¡°µÈÓÚ¡±Æä¸¸Àà¡£ÄÇô£¬ÓÉ×ÓÀàÔìÐÍÖÁ¸¸ÀàµÄ²Ù×÷¾ÍÊDz»±ØÒªµÄÁË¡£
Àý×Ó£º

class unc {   
string _id = "unc";
}
class dog extends unc {
void method () {
dog dog = new dog ();
unc animal = (unc)dog; // not necessary.
object o = (object)dog; // not necessary.
}
}

¸üÕý£º

class dog extends unc {   
void method () {
dog dog = new dog();
unc animal = dog;
object o = dog;
}
}

9.¾¡Á¿ÖØÓöÔÏó¡£

ÌØ±ðÊÇ String ¶ÔÏóµÄʹÓÃÖУ¬³öÏÖ×Ö·û´®Á¬½ÓÇé¿öʱӦʹÓà StringBuffer ´úÌæ£¬ÓÉÓÚϵͳ²»½öÒª»¨Ê±¼äÉú³É¶ÔÏó£¬ÒÔºó¿ÉÄÜ»¹ÐèÒª»¨Ê±¼ä¶ÔÕâЩ¶ÔÏó½øÐÐÀ¬»ø»ØÊպʹ¦Àí¡£Òò´ËÉú³É¹ý¶àµÄ¶ÔÏó½«»á¸ø³ÌÐòµÄÐÔÄÜ´øÀ´ºÜ´óµÄÓ°Ïì¡£

10¡¢²»ÒªÖظ´³õʼ»¯±äÁ¿¡£

ĬÈÏÇé¿öÏ£¬µ÷ÓÃÀàµÄ¹¹Ô캯Êýʱ£¬java »á°Ñ±äÁ¿³õʼ»¯³ÉÈ·¶¨µÄÖµ£¬ËùÓеĶÔÏó±»ÉèÖóÉnull£¬ÕûÊý±äÁ¿ÉèÖÃ³É 0£¬float ºÍ double ±äÁ¿ÉèÖÃ³É 0.0£¬Âß¼­ÖµÉèÖÃ³É false¡£µ±Ò»¸öÀà´ÓÁíÒ»¸öÀàÅÉÉúʱ£¬ÕâÒ»µãÓÈÆäÓ¦¸Ã×¢Ò⣬ÒòΪÓà new ¹Ø¼ü×Ö´´½¨Ò»¸ö¶ÔÏóʱ£¬¹¹Ô캯ÊýÁ´ÖеÄËùÓй¹Ô캯Êý¶¼»á±»×Ô¶¯µ÷ÓᣠÕâÀïÓиö×¢Ò⣬¸ø³ÉÔ±±äÁ¿ÉèÖóõʼֵµ«ÐèÒªµ÷ÓÃÆäËû·½·¨µÄʱºò£¬×îºÃ·ÅÔÚÒ»¸ö·½·¨±ÈÈçinitXXX()ÖУ¬ÒòΪֱ½Óµ÷ÓÃij·½·¨¸³Öµ¿ÉÄÜ»áÒòΪÀàÉÐδ³õʼ»¯¶øÅ׿ÕÖ¸ÕëÒì³££¬public int state = this.getState();

11¡¢²»Òª¹ý·Ö´´½¨¶ÔÏó

¹ý·ÖµÄ´´½¨¶ÔÏó»áÏûºÄϵͳµÄ´óÁ¿Äڴ棬ÑÏÖØÊ±£¬»áµ¼ÖÂÄÚ´æÐ¹Â©£¬Òò´Ë£¬±£Ö¤¹ýÆÚµÄ¶ÔÏóµÄ¼°Ê±»ØÊÕ¾ßÓÐÖØÒªÒâÒå¡£ JVM µÄ GC²¢·ÇÊ®·ÖÖÇÄÜ£¬Òò´Ë½¨ÒéÔÚ¶ÔÏóʹÓÃÍê±Ïºó£¬ÊÖ¶¯ÉèÖÃ³É null¡£

¶þ¡¢Java I£¯O¼¼ÇÉ

I£¯OÐÔÄܳ£³£ÊÇÓ¦ÓóÌÐòÐÔÄÜÆ¿¾±£¬ÓÅ»¯I£¯OÐÔÄܾÍÏԵü«ÎªÏµÒª¡£ÔÚ½øÐÐI£¯0²Ù×÷ʱ£¬Ää×ñÑ­ÒÔÏÂÔ­Ôò£º¾¡¿ÉÄÜÉٵķÃÎÊ´ÅÅÌ£»¾¡¿ÉÄÜÉÙµÄI·½ÎʵײãµÄ²Ù×÷ϵͳ£»¾¡¿ÉÄÜÉٵķ½·¨µ÷Ó㻾¡¿ÉÄÜÉÙ´¦Àí¸ö±ðµÄ´¦Àí×Ö½ÚºÍ×Ö·û¡£»ùÓÚÒÔÉÏÔ­Ôò£¬¿ÉÒÔͨ¹ýÒÔϼ¼ÇÉÌá¸ßI£¯OËÙ¶È£º

1¡¢Ê¹ÖÝ»º³åÌá¸ßI£¯OÐÔÄÜ¡£

³£ÓõÄʵÏÖ·½·¨ÓÐÒÔÏÂ2ÖÖ£ºÊ¹ÓÃÓÃÓÚ×Ö·ûµÄBufferedReaderºÍÓÃÓÚÄþ½ÚµÄBufferedlnputStreamÀ࣬»òÕßʹÓÿé¶ÁÈ¡·½·¨´Î¶Áȡһ´ó¿éÊý¾Ý¡£

2¡¢lnputStream±ÈReader¸ßЧ£¬OutputStream±ÈWriter¸ßЧ¡£

µ±Ê¹ÓÃUnicode×Ö·û´®Ê±£¬WriteÀàµÄ¿ªÏú±È½Ï´ó¡£ÒòΪËüҪʵUoicodeµ½×Ö½Ú(byte)µÄת»»¡£Òò´Ë£¬Èç¹û¿ÉÄܵϰ£¬ÔÚʹÓà WriteÀà֮ǰ¾ÍʵÏÖת»»»òÓÃOutputStreamÀà´úÌæWriter¦À´Ê¹Óá£

3¡¢ÔÚÊʵ±µÄʱºòÓÃbyteÌæ´úchar¡£

1¸öcharÓÃ2¸ö×Ö½Ú±£´æ×Ö·û£¬¶øbyteÖ»ÐèÒª1¸ö£¬Òò´ËÓÃbyte±£´æ×Ö·ûÏûºÄµÄÄÚ´æºÍÐèÒªÖ´ÐеĻúÆ÷Ö¸Áî¸üÉÙ¡£¸üÖØÒªµÄÊÇ£¬ÓÃbyte±ÜÃâÁ˽øÐÐUnicodeת»»¡£Òò´Ë£¬Èç¹ûî®Äܵϰ£¬Ó¦¾¡Á¿Ê¹ÓÃbyteÌæ´úchar¡£

4¡¢Óлº³åµÄ¿é²Ù×÷10Òª±È»º³åµÄÁ÷×Ö·ûIO¿ì¡£

¶ÔÓÚ×Ö·ûIO£¬ËäÈ»»º³åÁ÷±ÜÃâÁËÿ´Î¶ÁÈ¡×Ö·ûʱµÄϵͳµ÷ÓÿªÏú£¬µ«ÈÔÐèÒªÒ»´Î»ò¶à´Î·½·¨µ÷Óᣴø»º³åµÄ¿é10±È»º³åÁ÷IO¿ì2µ½4±¶£¬±ÈÎÞ»º³åµÄIO¿ì4µ½40±¶¡£

5¡¢ÐòÁл¯Ê±£¬Ê¹ÓÃÔ­×ÓÀàÐÍ¡£

µ±ÐòÁл¯Ò»¸öÀà»ò¶ÔÏóʱ£¬¶Ô¸ÉÄÇЩԭ×ÓÀàÐÍ(atomic)»ò¿ÉÒÔÖØ½¨µÄÔªËØ£¬Òª±êʶΪtransientÀàÐÍ£¬ÕâÑù¾Í²»ÓÃÿһ´Î¶¼½øÐÐÐòÁл¯¡£Èç¹ûÕâíÎÐòÁл¯µÄ¶ÔÏóÒªÔÚÍøÂçÉÏ´«Ê䣬ÕâһССµÄ¸Ä±ä¶ÔÐÔÄÜ»áÓкܴóµÄÌá¸ß¡£

6¡¢ÔÚfinally ¿éÖйرÕstream

³ÌÐòÖÐʹÓõ½µÄ×ÊÔ´Ó¦µ±±»ÊÍ·Å£¬ÒÔ±ÜÃâ×ÊԴй©¡£Õâ×îºÃÔÚ finally ¿éÖÐÈ¥×ö¡£²»¹Ü³ÌÐòÖ´ÐеĽá¹ûÈçºÎ£¬finally ¿é×ÜÊÇ»áÖ´Ðеģ¬ÒÔÈ·±£×ÊÔ´µÄÕýÈ·¹Ø±Õ¡£

Àý×Ó£º

import java.io.*;   
public class cs {
public static void main (string args[]) {
cs cs = new cs ();
cs.method ();
}
public void method () {
try {
fileinputstream fis = new fileinputstream ("cs.java");
int count = 0;
while (fis.read () != -1)
count++;
system.out.println (count);
fis.close ();
} catch (filenotfoundexception e1) {
} catch (ioexception e2) {
}
}
}

¸üÕý£º

ÔÚ×îºóÒ»¸ö catch ºóÌí¼ÓÒ»¸ö finally ¿é

7¡¢SQLÓï¾ä

ÔÚ java+Oracle µÄÓ¦ÓÃϵͳ¿ª·¢ÖУ¬java ÖÐÄÚǶµÄ SQL ÓïÑÔÓ¦¾¡Á¿Ê¹ÓôóдÐÎʽ£¬ÒÔ¼õÉÙOracle ½âÎöÆ÷µÄ½âÎö¸ºµ£¡£

8¡¢¾¡ÔçÊÍ·Å×ÊÔ´

java ±à³Ì¹ý³ÌÖУ¬½øÐÐÊý¾Ý¿âÁ¬½Ó£¬I/O Á÷²Ù×÷£¬ÔÚʹÓÃÍê±Ïºó£¬¼°Ê±¹Ø±ÕÒÔÊÍ·Å×ÊÔ´¡£ÒòΪ¶ÔÕâЩ´ó¶ÔÏóµÄ²Ù×÷»áÔì³Éϵͳ´óµÄ¿ªÏú¡£

Èý¡¢Òì³£(Exceptions)ʹÓü¼ÇÉ

JAVAÓïÑÔÖÐÌṩÁËtry£¯catchÀ´¿ª·¢·½±ãÓû§²¶×½Òì³££¬½øÐÐÒì³£µÄ´¦Àí¡£µ«ÊÇÈç¹ûʹÓò»µ±£¬Ò²»á¸øJAvA³ÌÐòµÄÐÔÄÜ´øÀ´Ó°Ïì¡£Òò´Ë£¬Òª×¢ÒâÒÔ϶ùµã¡£É÷ÓÃÒì³££¬Òì³£¶ÔÐÔÄܲ»Àû¡£Å׳öÒì³£Ê×ÏÈÒª´´½¨Ò»¸öеĶÔÏó¡£Throwable½Ó¿ÚµÄ¹¹Ô캯Êýµ÷ÓÃÃûΪfillInStackTrace()µÄ±¾µØ(Native)·½·¨filllnStackTrace()·½·¨¼ì²é¶ÑÕ»£¬ÊÕ¼¯µ÷Óøú×ÙÐÅÏ¢¡£Ö»ÒªÓÐÒì³£±»Å׳ö£¬VM¾Í±ØÐëµ÷Õûµ÷ÓöÑÕ»¡£

1¡¢±ÜÃâʹÓÃÒì³£À´¿ØÖƳÌÐòÁ÷³Ì

Èç¹û¿ÉÒÔÓÃif¡¢whileµÈÂß¼­Óï¾äÀ´´¦Àí£¬ÄÇô¾Í¾¡¿ÉÄܵIJ»ÓÃtry£¯catchÓï¾ä¡£Å׳öÒì³£Ê×ÏÈÒª´´½¨Ò»¸öеĶÔÏó¡£Throwable ½Ó¿ÚµÄ¹¹Ô캯Êýµ÷ÓÃÃûΪ fillInStackTrace()µÄ±¾µØ·½·¨£¬fillInStackTrace()·½·¨¼ì²éÕ»£¬ÊÕ¼¯µ÷Óøú×ÙÐÅÏ¢¡£Ö»ÒªÓÐÒì³£±»Å׳ö£¬VM ¾Í±ØÐëµ÷Õûµ÷ÓÃÕ»£¬ÒòΪÔÚ´¦Àí¹ý³ÌÖд´½¨ÁËÒ»¸öеĶÔÏó¡£ Òì³£Ö»ÄÜÓÃÓÚ´íÎó´¦Àí£¬²»Ó¦¸ÃÓÃÀ´¿ØÖƳÌÐòÁ÷³Ì¡£

2¡¢¾¡¿ÉÄÜÖØÓÃÒì³£

ÔÚ±ØÐëÒª½øÐÐÒì³£µÄ´¦Àíʱ£¬Òª¾¡¿ÉÄܵÄÖØÓÃÒѾ­´æÔÚµÄÒì³£¶ÔÏó¡£ÒòΪÔÚÒì³£µÄ´¦ÀíÖУ¬Éú³É¸öÒì³£¶ÔÏóÒªÏûºÄµô´ó²¿·ÖµÄʱ¼ä¡£

3¡¢½«try/catch ¿éÒÆ³öÑ­»·

°Ñtry/catch¿é·ÅÈëÑ­»·ÌåÄÚ£¬»á¼«´óµÄÓ°ÏìÐÔÄÜ£¬Èç¹û±àÒë jit ±»¹Ø±Õ»òÕßÄãËùʹÓõÄÊÇÒ»¸ö²»´ø jit µÄjvm£¬ÐÔÄܻὫϽµ21%Ö®¶à!

Àý×Ó£º

import java.io.fileinputstream;   
public class try {
void method (fileinputstream fis) {
for (int i = 0; i < size; i++) {
try { // violation
_sum += fis.read();
} catch (exception e) {}
}
}
private int _sum;
}

¸üÕý£º½« try/catch¿éÒÆ³öÑ­»·

void method (fileinputstream fis) {   
try {
for (int i = 0; i < size; i++) { _sum += fis.read();
}
} catch (exception e) {}
}

ËÄ¡¢Ïß³ÌʹÓü¼ÇÉ

1¡¢ÔÚʹÓôóÁ¿Ïß³Ì(Threading)µÄ³¡ºÏʹÓÃÏ̳߳عÜÀí

Éú³ÉºÍÆô¶¯ÐÂÏß³ÌÊǸöÏà¶Ô½ÏÂýµÄ¹ý³Ì£¬Éú³ÉÈËÁ¿ÐÂÏ̻߳áÑÏÖØÓ°ÏìÓ¦J_}j³ÌÐòÐÔÄÜ¡£Í¨¹ýʹÓÃÏ̳߳أ¬ÓÉÏ̳߳عÜÀíÆ÷(thread pool manager)À´Éú³ÉÐÂÏ̻߳ò·ÖÅäÏÖÓÐỊ̈߳¬°ØÊ¡Éú³ÉÏ̵߳Ľм䡣

2¡¢·ÀÖ¹¹ý¶àµÄͬ²½

²»±ØÒªµÄͬ²½³£³£»áÔì³É³ÌÐòÐÔÄܵÄϽµ£¬µ÷ÓÃͬ²½·½·¨±Èµ÷Ó÷Çͬ²½·½·¨Òª»¨·Ñ¸ü¶àµÄʱ¼ä¡£Èç¹û³ÌÐòÊǵ¥Ị̈߳¬ÔòûÓбØÒªÊ¹ÓÃͬ²½¡£

3¡¢Í¬²½·½·¨¶ø²»ÒªÍ¬²½Õû¸ö´úÂë¶Î

¶Ôij¸ö·½·¨»òº¯Êý½øÐÐͬ²½±È¶ÔÕû¸ö´úÂë¶Î½øÐÐͬ²½µÄÐÔÄÜÒªºÃ¡£

4¡¢ÔÚ×·ÇóËٶȵij¡ºÏ£¬ÓÃArrayListºÍHashMap´úÌæVectorºÍHashtable

VectorºÍHashtableʵÏÖÁËͬ²½ÒÔÌá¸ßḬ̈߳²È«ÐÔ£¬µ«ËٶȽÏûÓÐʵÏÖͬ²½µÄArrayListºÍHa shMapÒªÂý£¬¿ÉÒÔ¸ù¾ÝÐèҪѡÔñʹÓõÄÀà¡£

5¡¢Ê¹ÓÃnotify()¶ø²»ÊÇnotifyAll()

ʹÓÃÄĸö·½·¨ÒªÈ¡¾öÓÚ³ÌÐòµÄû¼Æ£¬µ«Ó¦¾¡¿ÉÄÜʹÓÃnotify()£¬ÒòΪnotify()Ö»»½ÐѵȴýÖ¸¶¨¶ÔÏóµÄỊ̈߳¬±È»½ÐÑËùÓеȴýÏßïûµÄnotifyAll0Ëٶȸü¿ì¡£

6¡¢²»ÒªÔÚÑ­»·Öе÷Óà synchronized(ͬ²½)·½·¨

·½·¨µÄͬ²½ÐèÒªÏûºÄÏ൱´óµÄ×ÊÁÏ£¬ÔÚÒ»¸öÑ­»·Öе÷ÓÃËü¾ø¶Ô²»ÊÇÒ»¸öºÃÖ÷Òâ¡£

Àý×Ó£º

import java.util.vector;   
public class syn {
public synchronized void method (object o) {
}
private void test () {
for (int i = 0; i < vector.size(); i++) {
method (vector.elementat(i)); // violation
}
}
private vector vector = new vector (5, 5);
}

¸üÕý£º²»ÒªÔÚÑ­»·ÌåÖе÷ÓÃͬ²½·½·¨£¬Èç¹û±ØÐëͬ²½µÄ»°£¬ÍƼöÒÔÏ·½Ê½£º

import java.util.vector;   
public class syn {
public void method (object o) {
}
private void test () {
synchronized{//ÔÚÒ»¸öͬ²½¿éÖÐÖ´ÐзÇͬ²½·½·¨
for (int i = 0; i < vector.size(); i++) {
method (vector.elementat(i));
}
}
}
private vector vector = new vector (5, 5);
}

7¡¢µ¥Ïß³ÌÓ¦¾¡Á¿Ê¹Óà HashMap, ArrayList¡£

³ý·Ç±ØÒª£¬·ñÔò²»ÍƼöʹÓà HashTable,Vector£¬ËýÃÇʹÓÃÁËͬ²½»úÖÆ£¬¶ø½µµÍÁËÐÔÄÜ¡£

Îå¡¢ÆäËü³£Óü¼ÇÉ

1¡¢Ê¹ÓÃÒÆÎ»²Ù×÷Ìæ´ú³Ë³ý·¨²Ù×÷¿ÉÒÔ¼«´óµØÌá¸ßÐÔÄÜ

"/"ÊÇÒ»¸öºÜ¡°°º¹ó¡±µÄ²Ù×÷£¬Ê¹ÓÃÒÆÎ»²Ù×÷½«»á¸ü¿ì¸üÓÐЧ¡£

Àý×Ó£º

public class sdiv {   
public static final int num = 16;
public void calculate(int a) {
int div = a / 4; // should be replaced with "a >> 2".
int div2 = a / 8; // should be replaced with "a >> 3".
int temp = a / 3;
int mul = a * 4; // should be replaced with "a << 2".
int mul2 = 8 * a; // should be replaced with "a << 3".
int temp2 = a * 3;
}
}

¸üÕý£º

public class sdiv {   
public static final int num = 16;
public void calculate(int a) {
int div = a >> 2;
int div2 = a >> 3;
int temp = a / 3; // ²»ÄÜת»»³ÉÎ»ÒÆ²Ù×÷
int mul = a << 2;
int mul2 = a << 3;
int temp = a * 3; // ²»ÄÜת»»
}
}

PS£º³ý·ÇÊÇÔÚÒ»¸ö·Ç³£´óµÄÑ­»·ÄÚ£¬ÐÔÄܷdz£ÖØÒª£¬¶øÇÒÄãºÜÇå³þÄã×Ô¼ºÔÚ×öʲô£¬·½¿ÉʹÓÃÕâÖÖ·½·¨¡£·ñÔòÌá¸ßÐÔÄÜËù´øÀ´µÄ³ÌÐòÍí¶ÁÐԵĽµµÍ½«ÊDz»ºÏËãµÄ¡£

2¡¢¶ÔVectorÖÐ×îºóλÖõÄÌí¼Ó¡¢É¾³ý²Ù×÷ÒªÔ¶Ô¶¿ìÓÚÛõµÚÒ»¸öÔªËØµÄÌí¼Ó¡¢É¾³ý²Ù×÷

3¡¢µ±¸´ÖÆÊý×éʱ£¬Ê¹ÓÃSystem.arraycop()·½·¨

Àý×Ó£º

public class irb   
{
void method () {
int[] array1 = new int [100];
for (int i = 0; i < array1.length; i++) {
array1 [i] = i;
}
int[] array2 = new int [100];
for (int i = 0; i < array2.length; i++) {
array2 [i] = array1 [i]; // violation
}
}
}

¸üÕý£º

public class irb   
{
void method () {
int[] array1 = new int [100];
for (int i = 0; i < array1.length; i++) {
array1 [i] = i;
}
int[] array2 = new int [100];
system.arraycopy(array1, 0, array2, 0, 100);
}
}

4¡¢Ê¹Óø´ºÏ¸³ÖµÔËËã·û

a=a+bºÍa+bס±àÒëʱ»á²úÉú²»Í¬JAVA×ÖÆæÂ룬ºóÕ߻ؿìÓÚǰÕß¡£¸Ô´Ë£¬Ê¹ÓÃ+=¡¢-=¡¢+=¡¢£¯=µÈ¸´Ì¨¸³ÖµÔËËã·û»áʹÔËËãËÙ¶ÈÉÔÓÐÌáÉý¡£

5¡¢ÓÃint¶ø²»ÓÃÆäËü»ù±¾ÀàÐÍ

¶ÔintÀàÀçµÄ²Ù×÷ͨ³£±ÈÆäËü»ù±¾ÀàÐÍÒª¿ì£¬Òò´Ë¾¡Á¿Ê¹ÓÃintÀàÐÍ¡£

6¡¢ÔÚ½øÐÐÊý¾Ý¿âÁ¬½ÓºÍÍøÂçÁ¬½ÓʱʹÓÃÁ¬½Ó³Ø

ÕâÀàÁ¬½ÓÍùÍù»áºÄ·Ñ´óÁ¿Ê±¼ä£¬Ó¦¾¡Á¿±ÜÃâ¡£¿ÉÒÔʹÓÃÁ¬½Ó³Ø¼¼Êõ£¬¸´ÓÃÏÖÓÐÁ¬½Ó¡£

7¡¢ÓÃѹËõ¼Ó¿ìÍøÂç´«ÊäËÙ¶ÈÒ»ÖÖ³£Ó÷½·¨ÊǰÑÏà¹ØÎļþ´ò°üµ½Ò»¸öjarÎļþÖС£

ÓÃÒ»¸öJarÎļþ·¢ËͶà¸öÎļþ»¹½ÐÒÔ±ÜÃâÿ¸öÎļþ´ò¿ªºÍ¹Ø±ÕÍøÂçÁ¬½ÓËùÔì³ÉµÄ¿ªÏú¡£

8¡¢ÔÚÊý¾Ý¿âÓ¦ÓóÌÐòÖÐʹÓÃÅú´¦Àí¹¦ÄÜ

¿ÉÒÔÀûÓÃStatementÀàµÄaddBatch()·úl exexuteBatch·¨³ÉÅúµØÌá½»sqlÓï¾ä£¬ÒÔ½ÚÊ¡ÍøÂç´«Ê俪Ïú¡£ÔÚÖ´ÐдóÁ¿ÏàËÆÓï¾äʱ£¬¿ÉÒÔʹÓÃPreParedState¡ªÀ࣬Ëü¿ÉÒÔÒ»´ÎÐÔ±àÒëÓï¾ä²¢¶à´ÎÖ´ÐУ¬ÓòÎÊý×îºóÖ´ÐеÄsqlÓï¾ä¡£

9¡¢Ïû³ýÑ­»·ÌåÖв»±ØÒªµÄ´úÂë

ÕâËÆºõÊÇÿ¸ö³ÌÐòÔ±¶¼ÖªµÀµÄ»ù±¾Ô­Ôò£¬Ã»Óбسö£¬µ«ºÜ¶àÈËÍùÍùºöÂÔһЩϸ½Ú¡£ÈçÏÂÁдúÂ룺

Vector aVector= ...£»  
for(int i=0£»i<aVector size()£»i++)(
System out printlll(aVector elementAt(i)toStringO)£»
}

Õâ¶Î´úÂëÖÐûѭ»·Ò»´Î¾ÍÒªµ÷ÓÃaVector.size()·½·¨£¬aVectorµÄ³¤¶È²»±äµÄ»°£¬¿ÉÒÔ¸ÄΪһÏ´úÂ룺

Vector aVector= ...£º  
int length=aVector size()£»
for(int i=0£»i<length£»i++)f
System out println(aVector elememAt(i)toStringO)£»
)

ÕâÑùÏû³ýÁËÿ´Îµ÷ÓÃaVector.size()·½·¨µÄ¿ªÏú¡£

10¡¢Îª'vectors' ºÍ 'hashtables'¶¨Òå³õʼ´óС

jvm Ϊ vector À©³ä´óСµÄʱºòÐèÒªÖØÐ´´½¨Ò»¸ö¸ü´óµÄÊý×飬½«Ô­Ô­ÏÈÊý×éÖеÄÄÚÈݸ´ÖƹýÀ´£¬×îºó£¬Ô­ÏȵÄÊý×éÔÙ±»»ØÊÕ¡£¿É¼û vector ÈÝÁ¿µÄÀ©´óÊÇÒ»¸öÆÄ·Ñʱ¼äµÄÊ¡£ ͨ³££¬Ä¬È쵀 10 ¸öÔªËØ´óСÊDz»¹»µÄ¡£Äã×îºÃÄÜ׼ȷµÄ¹À¼ÆÄãËùÐèÒªµÄ×î¼Ñ´óС¡£

Àý×Ó£º

import java.util.vector;   
public class dic {
public void addobjects (object[] o) {
// if length > 10, vector needs to expand
for (int i = 0; i< o.length;i++) {
v.add(o); // capacity before it can add more elements.
}
}
public vector v = new vector(); // no initialcapacity.
}

<span style="WHITE-SPACE: pre"> </span><span style="font-size:14px;">¸üÕý£º  ×Ô¼ºÉ趨³õʼ´óС¡£ </span> 

public vector v = new vector(20);     
public hashtable hash = new hashtable(10);

11¡¢Èç¹ûÖ»ÊDzéÕÒµ¥¸ö×Ö·ûµÄ»°£¬ÓÃcharat()´úÌæstartswith()

ÓÃÒ»¸ö×Ö·û×÷Ϊ²ÎÊýµ÷Óà startswith()Ò²»á¹¤×÷µÄºÜºÃ£¬µ«´ÓÐÔÄܽǶÈÉÏÀ´¿´£¬µ÷ÓÃÓà string api ÎÞÒÉÊÇ´íÎóµÄ!

Àý×Ó£º

public class pcts {   
private void method(string s) {
if (s.startswith("a")) { // violation
// ...
}
}
}

¸üÕý £º½«'startswith()' Ìæ»»³É'charat()'.

public class pcts {   
private void method(string s) {
if ('a' == s.charat(0)) {
// ...
}
}
}

12¡¢ÔÚ×Ö·û´®Ïà¼ÓµÄʱºò£¬Ê¹Óà ' ' ´úÌæ " "£¬Èç¹û¸Ã×Ö·û´®Ö»ÓÐÒ»¸ö×Ö·ûµÄ»°

Àý×Ó£º

public class str {   
public void method(string s) {
string string = s + "d" // violation.
string = "abc" + "d" // violation.
}
}

¸üÕý£º ½«Ò»¸ö×Ö·ûµÄ×Ö·û´®Ìæ»»³É' '

public class str {   
public void method(string s) {
string string = s + 'd'
string = "abc" + 'd'
}
}

13¡¢¶ÔÓÚ boolean Öµ£¬±ÜÃâ²»±ØÒªµÄµÈʽÅжÏ

½«Ò»¸ö boolean ÖµÓëÒ»¸ö true ±È½ÏÊÇÒ»¸öºãµÈ²Ù×÷(Ö±½Ó·µ»Ø¸Ã boolean ±äÁ¿µÄÖµ). ÒÆ×ß¶ÔÓÚboolean µÄ²»±ØÒª²Ù×÷ÖÁÉÙ»á´øÀ´ 2 ¸öºÃ´¦£º

1)´úÂëÖ´Ðеĸü¿ì (Éú³ÉµÄ×Ö½ÚÂëÉÙÁË 5 ¸ö×Ö½Ú)£»

2)´úÂëÒ²»á¸ü¼Ó¸É¾» ¡£

Àý×Ó£º

public class ueq {   
boolean method (string string) {
return string.endswith ("a") == true; // violation
}
}

¸üÕý£º

class ueq_fixed  {   
boolean method (string string) {
return string.endswith ("a");
}
}

14¡¢¶ÔÓÚ³£Á¿×Ö·û´®£¬ÓÃ'string' ´úÌæ 'stringbuffer'

³£Á¿×Ö·û´®²¢²»ÐèÒª¶¯Ì¬¸Ä±ä³¤¶È¡£

Àý×Ó£º

public class usc {   
string method () {
stringbuffer s = new stringbuffer ("hello");
string t = s + "world!";
return t;
}
}

¸üÕý£º

°Ñ stringbuffer »»³É string£¬Èç¹ûÈ·¶¨Õâ¸ö string ²»»áÔÙ±äµÄ»°£¬Õ⽫»á¼õÉÙÔËÐпªÏúÌá¸ßÐÔÄÜ¡£

15¡¢ÓÃ'stringtokenizer' ´úÌæ 'indexof()' ºÍ'substring()'

×Ö·û´®µÄ·ÖÎöÔںܶàÓ¦ÓÃÖж¼Êdz£¼ûµÄ¡£Ê¹Óà indexof()ºÍ substring()À´·ÖÎö×Ö·û´®ÈÝÒ×µ¼Ö stringindexoutofboundsexception¡£¶øÊ¹Óà stringtokenizer ÀàÀ´·ÖÎö×Ö·û´®Ôò»áÈÝÒ×һЩ£¬Ð§ÂÊÒ²»á¸ßһЩ¡£

Àý×Ó£º

public class ust {   
void parsestring(string string) {
int index = 0;
while ((index = string.indexof(".", index)) != -1) {
system.out.println (string.substring(index, string.length()));
}
}
}

16¡¢Ê¹ÓÃÌõ¼þ²Ù×÷·ûÌæ´ú"if (cond) else " ½á¹¹

Ìõ¼þ²Ù×÷·û¸ü¼ÓµÄ¼ò½Ý

Àý×Ó£º

public class if {   
public int method(boolean isdone) {
if (isdone) {
return 0;
} else {
return 10;
}

void method2(boolean istrue) {
if (istrue) {
_value = 0;
} else {
_value = 1;
<span style="WHITE-SPACE: pre"> </span>}
}
}

¸üÕý£º

public class if {   
public int method(boolean isdone) {
return (isdone ? 0 : 10);
}

void method(boolean istrue) {
<span style="WHITE-SPACE: pre"> </span>_value = (istrue ? 0 : 1); // comp
<span style="WHITE-SPACE: pre"> </span>}
private int _value = 0;

}

17¡¢²»ÒªÔÚÑ­»·ÌåÖÐʵÀý»¯±äÁ¿

ÔÚÑ­»·ÌåÖÐʵÀý»¯ÁÙʱ±äÁ¿½«»áÔö¼ÓÄÚ´æÏûºÄ

Àý×Ó£º

import java.util.vector;   
public class loop {
void method (vector v) {
for (int i=0;i < v.size();i++) {
object o = new object();
o = v.elementat(i);
}
}
}

¸üÕý£º

ÔÚÑ­»·ÌåÍⶨÒå±äÁ¿£¬²¢·´¸´Ê¹ÓÃ

import java.util.vector;   
public class loop {
void method (vector v) {
object o;
for (int i=0;i<v.size();i++) {
o = v.elementat(i);
}
}
}

18¡¢È·¶¨ stringbufferµÄÈÝÁ¿

stringbuffer µÄ¹¹ÔìÆ÷»á´´½¨Ò»¸öĬÈÏ´óС(ͨ³£ÊÇ 16)µÄ×Ö·ûÊý×é¡£ÔÚʹÓÃÖУ¬Èç¹û³¬³öÕâ¸ö´óС£¬¾Í»áÖØÐ·ÖÅäÄڴ棬´´½¨Ò»¸ö¸ü´óµÄÊý×飬²¢½«Ô­ÏȵÄÊý×鏴֯¹ýÀ´£¬ÔÙ¶ªÆú¾ÉµÄÊý×é¡£ÔÚ´ó¶àÊýÇé¿öÏ£¬Äã¿ÉÒÔÔÚ´´½¨ stringbuffer µÄʱºòÖ¸¶¨´óС£¬ÕâÑù¾Í±ÜÃâÁËÔÚÈÝÁ¿²»¹»µÄʱºò×Ô¶¯Ôö³¤£¬ÒÔÌá¸ßÐÔÄÜ¡£

Àý×Ó£º

public class rsbc {   
void method () {
stringbuffer buffer = new stringbuffer(); // violation
buffer.append ("hello");
}
}

¸üÕý£ºÎª stringbuffer Ìṩ´óС¡£

public class rsbc {   
void method () {
stringbuffer buffer = new stringbuffer(max);
buffer.append ("hello");
}
private final int max = 100;
}

19¡¢²»Òª×ÜÊÇʹÓÃÈ¡·´²Ù×÷·û(!)

È¡·´²Ù×÷·û(!)½µµÍ³ÌÐòµÄ¿É¶ÁÐÔ£¬ËùÒÔ²»Òª×ÜÊÇʹÓá£

Àý×Ó£º

public class dun {   
boolean method (boolean a, boolean b) {
if (!a)
return !a;
else
return !b;
}
}

¸üÕý£ºÈç¹û¿ÉÄܲ»ÒªÊ¹ÓÃÈ¡·´²Ù×÷·û(!)

20¡¢ÓëÒ»¸ö½Ó¿Ú ½øÐÐinstanceof ²Ù×÷

»ùÓÚ½Ó¿ÚµÄÉè¼ÆÍ¨³£ÊǼþºÃÊ£¬ÒòΪËüÔÊÐíÓв»Í¬µÄʵÏÖ£¬¶øÓÖ±£³ÖÁé»î¡£Ö»Òª¿ÉÄÜ£¬¶ÔÒ»¸ö¶ÔÏó½øÐÐ instanceof ²Ù×÷£¬ÒÔÅжÏËüÊÇ·ñijһ½Ó¿ÚÒª±ÈÊÇ·ñijһ¸öÀàÒª¿ì¡£

Àý×Ó£º

public class insof {   
private void method (object o) {
if (o instanceof interfacebase) { } // better
if (o instanceof classbase) { } // worse.
}
}

class classbase {}
interface interfacebase {}

21¡¢²ÉÓÃÔÚÐèÒªµÄʱºò²Å¿ªÊ¼´´½¨µÄ²ßÂÔ¡£

ÀýÈ磺

String str="abc";   
if(i==1){ list.add(str);}

Ó¦ÐÞ¸ÄΪ£º

if(i==1){String str="abc"; list.add(str);}   

22¡¢Í¨¹ý StringBuffer µÄ¹¹Ô캯ÊýÀ´É趨ËûµÄ³õʼ»¯ÈÝÁ¿£¬¿ÉÒÔÃ÷ÏÔÌáÉýÐÔÄÜ¡£

StringBuffer µÄĬÈÏÈÝÁ¿Îª 16£¬µ± StringBuffer µÄÈÝÁ¿´ïµ½×î´óÈÝÁ¿Ê±£¬Ëý»á½«×ÔÉíÈÝÁ¿Ôö¼Óµ½µ±Ç°µÄ 2 ±¶+2£¬Ò²¾ÍÊÇ 2*n+2¡£ÎÞÂÛºÎʱ£¬Ö»Òª StringBuffer µ½´ïËýµÄ×î´óÈÝÁ¿£¬Ëý¾Í²»µÃ²»´´½¨Ò»¸öеĶÔÏóÊý×飬Ȼºó¸´ÖƾɵĶÔÏóÊý×飬Õâ»áÀ˷Ѻܶàʱ¼ä¡£ËùÒÔ¸øStringBuffer ÉèÖÃÒ»¸öºÏÀíµÄ³õʼ»¯ÈÝÁ¿Öµ£¬ÊǺÜÓбØÒªµÄ£¡

23¡¢ºÏÀíʹÓà java.util.Vector

Vector Óë StringBuffer ÀàËÆ£¬Ã¿´ÎÀ©Õ¹ÈÝÁ¿Ê±£¬ËùÓÐÏÖÓÐÔªËØ¶¼Òª¸³Öµµ½ÐµĴ洢¿Õ¼äÖС£Vector µÄĬÈÏ´æ´¢ÄÜÁ¦Îª 10¸öÔªËØ£¬À©Èݼӱ¶¡£ vector.add(index,obj) Õâ¸ö·½·¨¿ÉÒÔ½«ÔªËØ obj ²åÈëµ½index λÖ㬵« index ÒÔ¼°Ö®ºóµÄÔªËØÒÀ´Î¶¼ÒªÏòÏÂÒÆ¶¯Ò»¸öλÖ㨽«ÆäË÷Òý¼Ó 1£©¡£ ³ý·Ç±ØÒª£¬·ñÔò¶ÔÐÔÄܲ»Àû¡£ ͬÑù¹æÔòÊÊÓÃÓÚ remove(int index)·½·¨£¬ÒƳý´ËÏòÁ¿ÖÐÖ¸¶¨Î»ÖõÄÔªËØ¡£½«ËùÓкóÐøÔªËØ×óÒÆ£¨½«ÆäË÷Òý¼õ 1£©¡£·µ»Ø´ËÏòÁ¿ÖÐÒÆ³ýµÄÔªËØ¡£ËùÒÔɾ³ý vector ×îºóÒ»¸öÔªËØÒª±Èɾ³ýµÚ1 ¸öÔªËØ¿ªÏúµÍºÜ¶à¡£É¾³ýËùÓÐÔªËØ×îºÃÓà removeAllElements()·½·¨¡£ Èç¹ûҪɾ³ý vector ÀïµÄÒ»¸öÔªËØ¿ÉÒÔʹÓà vector.remove(obj)£»¶ø²»±Ø×Ô¼º¼ìË÷ÔªËØÎ»Öã¬ÔÙɾ³ý£¬Èç int index = indexOf£¨obj£©;vector.remove(index)£»

24¡¢²»Òª½«Êý×éÉùÃ÷Ϊ£ºpublic static final

25¡¢HaspMap µÄ±éÀú

Map<String, String[]> paraMap = new HashMap<String, String[]>();   
for( Entry<String, String[]> entry : paraMap.entrySet() )
{
String appFieldDefId = entry.getKey();
String[] values = entry.getValue();
}

ÀûÓÃÉ¢ÁÐֵȡ³öÏàÓ¦µÄ Entry ×ö±È½ÏµÃµ½½á¹û£¬È¡µÃ entryµÄÖµÖ®ºóÖ±½ÓÈ¡ keyºÍ value¡£

26¡¢array(Êý×é)ºÍ ArrayList µÄʹÓá£

array Êý×éЧÂÊ×î¸ß£¬µ«ÈÝÁ¿¹Ì¶¨£¬ÎÞ·¨¶¯Ì¬¸Ä±ä£¬ArrayList ÈÝÁ¿¿ÉÒÔ¶¯Ì¬Ôö³¤£¬µ«ÎþÉüÁËЧÂÊ¡£

27¡¢StringBuffer,StringBuilder µÄÇø±ð

StringBuffer,StringBuilder µÄÇø±ðÔÚÓÚ£ºjava.lang.StringBuffer Ḭ̈߳²È«µÄ¿É±ä×Ö·ûÐòÁС£Ò»¸öÀàËÆÓÚ String µÄ×Ö·û´®»º³åÇø£¬µ«²»ÄÜÐ޸ġ£StringBuilder Óë¸ÃÀàÏà±È£¬Í¨³£Ó¦¸ÃÓÅÏÈʹÓà StringBuilder À࣬ÒòΪËýÖ§³ÖËùÓÐÏàͬµÄ²Ù×÷£¬µ«ÓÉÓÚËý²»Ö´ÐÐͬ²½£¬ËùÒÔËٶȸü¿ì¡£ÎªÁË»ñµÃ¸üºÃµÄÐÔÄÜ£¬ÔÚ¹¹Ôì StringBuffer »ò StringBuilder ʱӦ¾¡Á¿Ö¸¶¨ËýµÄÈÝÁ¿¡£µ±È»Èç¹û²»³¬¹ý 16 ¸ö×Ö·ûʱ¾Í²»ÓÃÁË¡£ ÏàͬÇé¿öÏ£¬Ê¹Óà StringBuilder ±ÈʹÓà StringBuffer ½öÄÜ»ñµÃ 10%~15%µÄÐÔÄÜÌáÉý£¬µ«È´ÒªÃ°¶àÏ̲߳»°²È«µÄ·çÏÕ¡£×ۺϿ¼ÂÇ»¹Êǽ¨ÒéʹÓà StringBuffer¡£

28¡¢ ¾¡Á¿Ê¹Óûù±¾Êý¾ÝÀàÐÍ´úÌæ¶ÔÏó¡£

29¡¢Óüòµ¥µÄÊýÖµ¼ÆËã´úÌæ¸´Ôӵĺ¯Êý¼ÆË㣬±ÈÈç²é±í·½Ê½½â¾öÈý½Çº¯ÊýÎÊÌâ¡£

30¡¢Ê¹ÓþßÌåÀà±ÈʹÓýӿÚЧÂʸߣ¬µ«½á¹¹µ¯ÐÔ½µµÍÁË£¬µ«ÏÖ´ú IDE ¶¼¿ÉÒÔ½â¾öÕâ¸öÎÊÌâ¡£

31¡¢¿¼ÂÇʹÓþ²Ì¬·½·¨

Èç¹ûÄãûÓбØÒªÈ¥·ÃÎʶÔÏóµÄÍⲿ£¬ÄÇô¾ÍʹÄãµÄ·½·¨³ÉΪ¾²Ì¬·½·¨¡£Ëý»á±»¸ü¿ìµØµ÷Óã¬ÒòΪËý²»ÐèÒªÒ»¸öÐéÄ⺯Êýµ¼Ïò±í¡£ÕâͬÊÂÒ²ÊÇÒ»¸öºÜºÃµÄʵ¼ù£¬ÒòΪËý¸æËßÄãÈçºÎÇø·Ö·½·¨µÄÐÔÖÊ£¬µ÷ÓÃÕâ¸ö·½·¨²»»á¸Ä±ä¶ÔÏóµÄ״̬¡£

32.Ó¦¾¡¿ÉÄܱÜÃâʹÓÃÄÚÔÚµÄGET,SET ·½·¨

android ±à³ÌÖУ¬Ðé·½·¨µÄµ÷Óûá²úÉúºÜ¶à´ú¼Û£¬±ÈʵÀýÊôÐÔ²éѯµÄ´ú¼Û»¹Òª¶à¡£ÎÒÃÇÓ¦¸ÃÔÚÍâ°üµ÷ÓõÄʱºò²ÅʹÓà get£¬set·½·¨£¬µ«ÔÚÄÚ²¿µ÷ÓõÄʱºò£¬Ó¦¸ÃÖ±½Óµ÷Óá£

33¡¢±ÜÃâö¾Ù£¬¸¡µãÊýµÄʹÓá£

34¡¢¶þάÊý×é±ÈһάÊý×éÕ¼Óøü¶àµÄÄÚ´æ¿Õ¼ä£¬´ó¸ÅÊÇ 10 ±¶¼ÆËã¡£

35¡¢SQLite

SQLite Êý¾Ý¿â¶ÁÈ¡ÕûÕűíµÄÈ«²¿Êý¾ÝºÜ¿ì£¬µ«ÓÐÌõ¼þµÄ²éѯ¾ÍÒªºÄʱ 30-50MS,´ó¼Ò×öÕâ·½ÃæµÄʱºòҪעÒ⣬¾¡Á¿ÉÙÓã¬ÓÈÆäÊÇǶÌײéÕÒ£¡

36¡¢ÆæÅ¼ÅжÏ

²»ÒªÊ¹Óà i % 2 == 1 À´ÅжÏÊÇ·ñÊÇÆæÊý£¬ÒòΪ iΪ¸ºÆæÊýʱ²»³ÉÁ¢£¬ÇëʹÓà i % 2 != 0 À´ÅжÏÊÇ·ñÊÇÆæÊý£¬»òʹÓà ¸ßЧʽ (i & 1) != 0 À´Åжϡ£

   
2335 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Java΢·þÎñÐÂÉú´úÖ®Nacos
ÉîÈëÀí½âJavaÖеÄÈÝÆ÷
JavaÈÝÆ÷Ïê½â
Java´úÂëÖÊÁ¿¼ì²é¹¤¾ß¼°Ê¹Óð¸Àý
Ïà¹ØÎĵµ

JavaÐÔÄÜÓÅ»¯
Spring¿ò¼Ü
SSM¿ò¼Ü¼òµ¥¼òÉÜ
´ÓÁ㿪ʼѧjava±à³Ì¾­µä
Ïà¹Ø¿Î³Ì

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

Java ÖеÄÖÐÎıàÂëÎÊÌâ
Java»ù´¡ÖªÊ¶µÄÈýÊ®¸ö¾­µäÎÊ´ð
Íæ×ª Java Web Ó¦Óÿª·¢
ʹÓÃSpring¸üºÃµØ´¦ÀíStruts
ÓÃEclipse¿ª·¢iPhone WebÓ¦ÓÃ
²å¼þϵͳ¿ò¼Ü·ÖÎö

Struts+Spring+Hibernate
»ùÓÚJ2EEµÄWeb 2.0Ó¦Óÿª·¢
J2EEÉè¼ÆÄ£Ê½ºÍÐÔÄܵ÷ÓÅ
Java EE 5ÆóÒµ¼¶¼Ü¹¹Éè¼Æ
Javaµ¥Ôª²âÊÔ·½·¨Óë¼¼Êõ
Java±à³Ì·½·¨Óë¼¼Êõ

Struts+Spring+Hibernate/EJB+ÐÔÄÜÓÅ»¯
»ªÏÄ»ù½ð ActiveMQ Ô­ÀíÓë¹ÜÀí
ijÃñº½¹«Ë¾ Java»ù´¡±à³Ìµ½Ó¦Óÿª·¢
ij·çµç¹«Ë¾ Java Ó¦Óÿª·¢Æ½Ì¨ÓëÇ¨ÒÆ
ÈÕÕÕ¸Û J2EEÓ¦Óÿª·¢¼¼Êõ¿ò¼ÜÓëʵ¼ù
ij¿ç¹ú¹«Ë¾ ¹¤×÷Á÷¹ÜÀíJBPM
¶«·½º½¿Õ¹«Ë¾ ¸ß¼¶J2EE¼°ÆäÇ°ÑØ¼¼Êõ