Ò»Ãû3Ä깤×÷¾ÑéµÄJava³ÌÐòÔ±Ó¦¸Ã¾ß±¸µÄ¼¼ÄÜ£¬Õâ¿ÉÄÜÊÇJava³ÌÐòÔ±ÃDZȽϹØÐĵÄÄÚÈÝ¡£ÎÒÕâÀïҪ˵Ã÷һϣ¬ÒÔÏÂÁоٵÄÄÚÈݲ»ÊǶ¼Òª»áµÄ¶«Î÷¡ª-µ«ÊÇÈç¹ûÄãÕÆÎÕµÃÔ½¶à£¬×îÖÕÄܵõ½µÄÆÀ¼Û¡¢Äõ½µÄÐ½Ë®ÊÆ±ØÒ²Ô½¸ß¡£ 1¡¢»ù±¾Óï·¨
Õâ°üÀ¨static¡¢final¡¢transientµÈ¹Ø¼ü×ÖµÄ×÷Óã¬foreachÑ»·µÄÔÀíµÈµÈ¡£½ñÌìÃæÊÔÎÒÎÊÄãstatic¹Ø¼ü×ÖÓÐÄÄЩ×÷ Óã¬Èç¹ûÄã´ð³östaticÐÞÊαäÁ¿¡¢ÐÞÊη½·¨ÎÒ»áÈÏΪÄãºÏ¸ñ£¬´ð³ö¾²Ì¬¿é£¬ÎÒ»áÈÏΪÄã²»´í£¬´ð³ö¾²Ì¬ÄÚ²¿ÀàÎÒ»áÈÏΪÄãºÜºÃ£¬´ð³ö¾²Ì¬µ¼°üÎÒ»á¶ÔÄãºÜÂú Ò⣬ÒòΪÄÜ¿´³öÄã·Ç³£ÈÈÖÔÑо¿¼¼Êõ¡£ ×îÉîÈëµÄÒ»´Î£¬ÎҼǵÃÃæÊÔ¹ÙÖ±½ÓÎʵ½ÁËÎÒVolatile¹Ø ¼ü×ֵĵײãʵÏÖÔÀí(˳±ã²åÒ»¾ä£¬ÃæÊԺͱ»ÃæÊÔ±¾Éí¾ÍÊÇÏà¶ÔµÄ£¬ÃæÊÔ¹ÙÄÜÎÊÕâ¸öÎÊÌâͬʱҲÈÃÃæÊÔÕ߸оõµ½ÃæÊÔ¹ÙÒ²ÊÇÒ»¸öϲ°®Ñо¿¼¼ÊõµÄÈË£¬Ôö¼ÓÁËÃæÊÔÕß¶Ô ¹«Ë¾µÄºÃ¸Ð£¬ÎÒ×îÖÕÑ¡ÔñµÄ¾ÍÊÇÎÊÁËÕâ¸öÎÊÌâµÄ¹«Ë¾)£¬²»Òª¾õµÃÕâÌ«´µÃ«Çó´ÃÁË¡ª-Ô½¼òµ¥µÄÎÊÌâÔ½ÄÜ¿´³öÒ»¸öÈ˵Äˮƽ£¬±ðÈ˶ÔÄã¼¼ÊõµÄ¿¼Á¿¾ø´ó¶àÊý¶¼ÊÇÒÔÉî¶ÈÓÅÏÈ¡¢¹ã¶È´Î֮Ϊ±ê×¼µÄ£¬Çмǡ£ 2¡¢¼¯ºÏ
·Ç³£ÖØÒª£¬Ò²ÊDZØÎʵÄÄÚÈÝ¡£»ù±¾ÉϾÍÊÇList¡¢Map¡¢Set£¬ÎʵÄÊǸ÷ÖÖʵÏÖÀàµÄµ×²ãʵÏÖÔÀí£¬ÊµÏÖÀàµÄÓÅȱµã¡£
¼¯ºÏÒªÕÆÎÕµÄÊÇArrayList¡¢LinkedList¡¢Hashtable¡¢HashMap¡¢ConcurrentHashMap¡¢ HashSetµÄʵÏÖÔÀí£¬ÄÜÁ÷Àû×÷´ð£¬µ±È»ÄÜÕÆÎÕ
CopyOnWriteÈÝÆ÷ºÍQueueÊÇÔٺò»¹ýµÄÁË¡£ÁíÍâ¶à˵һ ¾ä£¬
ConcurrentHashMapµÄÎÊÌâÔÚÃæÊÔÖÐÎʵÃÌØ±ð¶à£¬´ó¸ÅÊÇÒòΪÕâ¸öÀà¿ÉÒÔÑÜÉú³ö·Ç³£¶àµÄÎÊÌ⣬¹ØÓÚConcurrentHashMap£¬ ÎÒ¸øÍøÓÑÅóÓÑÃÇÌṩÈýµã»Ø´ð»òÕßÊÇÑо¿·½Ïò£º
(1)ConcurrentHashMapµÄËø·Ö¶Î¼¼Êõ¡£
(2)ConcurrentHashMapµÄ¶ÁÊÇ·ñÒª¼ÓËø£¬ÎªÊ²Ã´¡£
(3)ConcurrentHashMapµÄµü´úÆ÷ÊÇǿһÖÂÐԵĵü´úÆ÷»¹ÊÇÈõÒ»ÖÂÐԵĵü´úÆ÷¡£ 3¡¢¿ò¼Ü
ÀÏÉú³£Ì¸£¬ÃæÊÔ±ØÎʵĶ«Î÷¡£Ò»°ãÀ´Ëµ»áÎÊÄãÒ»ÏÂÄãÃÇÏîÄ¿ÖÐʹÓõĿò¼Ü£¬È»ºó¸øÄãһЩ³¡¾°ÎÊÄãÓÿò¼ÜÔõô×ö£¬±ÈÈçÎÒÏëÒªÔÚSpring³õʼ»¯bean µÄʱºò×öһЩÊÂÇé¸ÃÔõô×ö¡¢ÏëÒªÔÚbeanÏú»ÙµÄʱºò×öһЩÊÂÇé¸ÃÔõô×ö¡¢MyBatisÖÐ$ºÍ#µÄÇø±ðµÈµÈ£¬ÕâЩ¶¼±È½Ïʵ¼ÊÁË£¬Æ½Ê±»ýÀ۵úá¢Óжàѧϰ ¿ò¼ÜµÄʹÓÃϸ½Ú×ÔÈ»¶¼²»³ÉÎÊÌâ¡£
Èç¹ûÉÏÃæÄãµÄÎÊÌâ´ðµÃºÃ£¬ÃæÊÔ¹ÙÍùÍù»áÉîÈëµØÎÊһЩ¿ò¼ÜµÄʵÏÖÔÀí¡£ÎʵÃ×î¶àµÄ¾ÍÊÇSpring AOPµÄʵÏÖÔÀí£¬µ±È»Õâ¸öºÜ¼òµ¥À²£¬Á½¾ä»°¾Í¸ã¶¨µÄµÄʶù£¬¼´Ê¹Äã²»»á×¼±¸Ò»Ï¾ͺÃÁË¡£ÎÒÓöµ½µÄ×î±ä̬µÄÊÇÈÃÎÒ»Ò»ÏÂSpringµÄBean¹¤³§Êµ ÏÖµÄUMLͼ£¬µ±È»Ãæ¶ÔÕâÑùÒ»¸öÓÐÉî¶ÈµÄÎÊÌ⣬ÎÒÊǾø¶Ô´ð²»³öÀ´µÄ/(¨Òo¨Ò)/~~
4¡¢Êý¾Ý¿â
Êý¾Ý¿âÊ®Óа˾ÅÒ²¶¼»áÎʵ½¡£Ò»Ð©»ù±¾µÄÏñºÍ allµÄÇø±ð¡¢left join¡¢¼¸ÖÖË÷Òý¼°ÆäÇø±ð¾Í²»Ì¸ÁË£¬±È½ÏÖØÒªµÄ¾ÍÊÇÊý¾Ý¿âÐÔÄܵÄÓÅ»¯£¬Èç¹û¶ÔÓÚÊý¾Ý¿âµÄÐÔÄÜÓÅ»¯Ò»Çϲ»Í¨£¬ÄÇôÓÐʱ¼ä£¬»¹Êǽ¨ÒéÄãÔÚÃæÊÔǰ»¨Ò»Á½ÌìרÃÅ °ÑSQL»ù´¡ºÍSQLÓÅ»¯µÄÄÚÈÝ×¼±¸Ò»Ï¡£
²»¹ýÊý¾Ý¿âµ¹ÊDz»Óõ£ÐÄ£¬Ò»¼Ò¹«Ë¾ÍùÍùÓкܶಿÃÅ£¬Èç¹ûÄã¶ÔÊý¾Ý¿â²»ÊìϤ¶ø»ù±¾¼¼ÊõÓַdz£ºÃ£¬¾Å³É¶¼ÊÇ»áÒªÄãµÄ£¬¹À¼Æ»áÏȰÑÄã·Åµ½¶ÔÊý¾Ý¿âʹÓò»ÊÇÒªÇó·Ç³£¸ßµÄ²¿ÃŶÍÁ¶Ò»Ï¡£ 5¡¢Web·½ÃæµÄһЩÎÊÌâ
JavaÖ÷ÒªÃæÏòWeb¶Ë£¬Òò´ËWebµÄһЩÎÊÌâÒ²ÊDZØÎʵġ£ ÎÒÅöµ½¹ýÎʵÃ×î¶àµÄÁ½¸öÎÊÌâÊÇ£º ̸̸·Ö²¼Ê½SessionµÄ¼¸ÖÖʵÏÖ·½Ê½¡£
³£ÓõÄËÄÖÖÄÜ´ð³öÀ´×ÔÈ»ÊÇÈÃÃæÊԹٷdz£ÂúÒâµÄ¡£
ÁíÍâÒ»¸ö³£ÎʵÄÎÊÌâÊÇ£º½²Ò»ÏÂSessionºÍCookieµÄÇø±ðºÍÁªÏµÒÔ¼°SessionµÄʵÏÖÔÀí¡£ÕâÁ½¸öÎÊÌâÖ®Í⣬web.xmlÀïÃæµÄÄÚÈÝÊÇÖØµã£¬Filter¡¢Servlet¡¢Listener£¬²»Ëµ¶ÔËüÃǵÄʵÏÖÔÀíÒ»Çå¶þ³þ°É£¬ÖÁÉÙÄܶÔËüÃǵÄʹÓÃÖª¸ùÖªµ×¡£ÁíÍ⣬һЩϸ½ÚµÄ·½Ãæ±ÈÈçget/postµÄÇø±ð¡¢forward/ÖØ¶¨ÏòµÄÇø±ð¡¢HTTPSµÄʵÏÖÔÀíÒ²¶¼¿ÉÄܻᱻ¿¼²ìµ½¡£
6¡¢Êý¾Ý½á¹¹ºÍËã·¨·ÖÎö
Êý¾Ý½á¹¹ºÍËã·¨·ÖÎö£¬¶ÔÓÚÒ»Ãû³ÌÐòÔ±À´Ëµ£¬»á±È²»»áºÃ¶øÇÒÔÚ¹¤×÷Öоø¶ÔÄÜÅÉÉÏÓó¡¡£Êý×é¡¢Á´±íÊÇ»ù´¡£¬Õ»ºÍ¶ÓÁÐÉîÈëһЩµ«Ò²²»ÄÑ£¬Ê÷Í¦ÖØÒªµÄ£¬±È½Ï ÖØÒªµÄÊ÷AVLÊ÷¡¢ºìºÚÊ÷£¬¿ÉÒÔ²»Á˽âËüÃǵľßÌåʵÏÖ£¬µ«ÊÇÒªÖªµÀʲôÊǶþ²æ²éÕÒÊ÷¡¢Ê²Ã´ÊÇÆ½ºâÊ÷£¬AVLÊ÷ºÍºìºÚÊ÷µÄÇø±ð¡£¼ÇµÃij´ÎÃæÊÔ£¬Ä³¸öÃæÊÔ¹ÙºÍ ÎÒÁĵ½ÁËÊý¾Ý¿âµÄË÷Òý£¬ËûÎÊÎÒ£ºÄãÖªµÀË÷ÒýʹÓõÄÊÇÄÄÖÖÊý¾Ý½á¹¹ÊµÏÖÂð? ÎÒ´ðµ½ÓõÄHash±í°É£¬´ð´í¡£ËûÓÖÎÊ£¬ÄãÖªµÀΪʲôҪʹÓÃÊ÷Âð?ÎÒ´ðµ½ÒòΪHash±í¿ÉÄÜ»á³öÏֱȽ϶àµÄ³åÍ»£¬ÔÚǧÍòÉõÖÁÊÇÉÏÒÚ¼¶±ðµÄÊý¾ÝÃæ ǰ£¬»á´ó´óÔö¼Ó²éÕÒµÄʱ¼ä¸´ÔÓ¶È¡£¶øÊ÷±È½ÏÎȶ¨£¬»ù±¾±£Ö¤×î¶à¶þÈýÊ®´Î¾ÍÄÜÕÒµ½ÏëÒªµÄÊý¾Ý£¬¶Ô·½Ëµ²»ÍêÈ«¶Ô£¬×îºóÎÒÃÇ»¹Êǽ»Á÷ÁËÒ»ÏÂÕâ¸öÎÊÌ⣬ÎÒÒ²Ã÷°×ÁË ÎªÊ²Ã´ÒªÊ¹ÓÃÊ÷£¬ÕâÀﲻ˵£¬ÍøÓÑÅóÓÑÃǾõµÃË÷ÒýΪʲôҪʹÓÃÊ÷À´ÊµÏÖÄØ?
ÖÁÓÚËã·¨·ÖÎö£¬²»»á¡¢²»ÏëÑо¿¾ÍËãÁË£¬¼ÇµÃij´ÎÃæÊÔ¶Ô·½ÎÊÎÒ£¬Collections.sort·½·¨Ê¹ÓõÄÊÇÄÄÖÖÅÅÐò·½·¨£¬¶î£¬ÍÂѪÈýÉý¡£µ±È»ÎªÁË ÏÔʾÎҵIJ©Ñ§£¬¶ÔËã·¨·ÖÎöÒ²ÓÐÒ»¶¨µÄÑо¿(¡Ñ©n¡Ñ)b£¬ÎÒ»¹ÊÇÓ²×ÅͷƤ˵ÁËÒ»¾ä¿ÉÄÜÊÇðÅÝÅÅÐò°É¡£µ±È»´ð°¸¿Ï¶¨²»ÊÇ£¬ÓÐÐËȤµÄÍøÓÑÅóÓÑÃÇ¿ÉÒÔÈ¥¿´Ò»Ï Collections.sort·½·¨µÄÔ´´úÂ룬ÓõÄÊÇÒ»ÖÖ½Ð×öTimSortµÄÅÅÐò·¨£¬Ò²¾ÍÊÇÔöÇ¿Ð͵Ĺ鲢ÅÅÐò·¨¡£ 7¡¢JavaÐéÄâ»ú
³öºõÎÒµÄÒâÁÏ£¬JavaÐéÄâ»úÓ¦¸ÃÊǺÜÖØÒªµÄÒ»¿éÄÚÈÝ£¬½á¹ûÔÚÕ⼸¼Ò¹«Ë¾Öб»Îʵ½µÄ¸ÅÂʼ¸ºõΪ0¡£ÒªÖªµÀ£¬ÎÒÈ¥Äê¿ÉÊÇ»¨ÁË´óÁ¿µÄʱ¼äÈ¥Ñо¿JavaÐéÄâ»úµÄ£¬¹âÖÜÖ¾Ã÷ÀÏʦµÄ¡¶ÉîÈëÀí½âJavaÐéÄâ»ú£ºJVM¸ß¼¶ÌØÐÔÓë×î¼Ñʵ¼ù¡·£¬ÎҾͶÁÁ˲»ÏÂÎå±é¡£
ÑÔ¹éÕý´«£¬ËäÈ»JavaÐéÄâ»úûÎʵ½£¬µ«ÎÒ¾õµÃ»¹ÊÇÓбØÒªÑо¿µÄ£¬ÎҾͼòµ¥µØÁÐÒ»¸öÌá¸Ù°É£¬Ì¸Ì¸JavaÐéÄâ»úÖбȽÏÖØÒªµÄÄÚÈÝ£º (1)JavaÐéÄâ»úµÄÄÚ´æ²¼¾Ö (2)GCËã·¨¼°¼¸ÖÖÀ¬»øÊÕ¼¯Æ÷ (3)Àà¼ÓÔØ»úÖÆ£¬Ò²¾ÍÊÇË«Ç×ίÅÉÄ£ÐÍ (4)JavaÄÚ´æÄ£ÐÍ (5)happens-before¹æÔò (6)volatile¹Ø¼ü×ÖʹÓùæÔò