[ÒëÎÄ]һЩJava²¢·¢¼¼ÇÉ
ÔÎÄ£ºSome Java Concurrency Tips
×÷ÕߣºCarol McDonald
³ö´¦£º
http://weblogs.java.net/blog/caroljmcdonald/archive/2009/09/17/some-java-concurrency-tips
ÕâÊÇÀ´×ÔJoshua Bloch¡¢Brian GoetzºÍÆäËûÈ˵ÄÒ»¸ö¹ØÓÚһЩ²¢·¢¼¼ÇɵĻã×Ü¡£
Ê×ÏÈÑ¡Ôñ²»¿É±äµÄ¶ÔÏó/Êý¾Ý
²»¿É±ä¶ÔÏó£¨immutable object£©ÔÚ¹¹½¨Ö®ºó¾Í²»»á¸Ä±äÁË£¬²»¿É±ä¶ÔÏó¸ü¼òµ¥¡¢°²È«£¬²»ÐèÒªËø£¬²¢ÇÒÊÇḬ̈߳²È«µÄ¡£ÎªÁËʹµÃ²»¿É±ä¶ÔÏóÎÞÐèÌṩsetter/mutator·½·¨£¬°ÑÓòÐÞÊγÉprivate finalµÄ£¬²¢¿É·ÀÖ¹Æä×ÓÀà±ð»¯¡£Èç¹û²»¿ÉÑ¡Ôñ²»±äÐÔ£¬ÄÇôÏÞÖÆ¿É±äµÄ״̬£¬Ô½ÉٵĿɱä״̬Òâζ×ÅÔ½ÉÙµÄе÷ÅäºÏ¡£ÔÚÈκÎʵ¼Ê¿ÉÐеÄÇé¿öϰÑÓòÉùÃ÷³ÉfinalµÄ£¬finalÓò±È¿É±äÓòÒª¼òµ¥µÃ¶à¡£
ÔÚÏ̹߳²Ïí¿É±äÊý¾ÝµÄʱºò£¬Ã¿¸ö¶ÁÏ̻߳òÕßдÏ̶߳¼±ØÐëҪе÷¶ÔÊý¾ÝµÄ·ÃÎÊ£¬Î´ÄÜͬ²½¹²ÏíµÄ¿É±äÊý¾Ý¿ÉÄܻᵼÖÂÔ×ÓÐÔµÄʧ°Ü¡¢¾ºÕùÌõ¼þ¡¢²»Ò»ÖµÄ״̬£¬ÒÔ¼°ÆäËûÐÎʽµÄ·ÇÈ·¶¨ÐÔ¡£ÕâЩ²»È·¶¨µÄÎÊÌâ¶¼ÊÇ×îÄÑÒÔµ÷ÊԵġ£
ʹ²¢·¢½»»¥Ö»ÔÚÃ÷È·¶¨ÒåµÄµØ·½·¢Éú£¬¼õÉÙ¹²ÏíÊý¾Ý£¬¿¼ÂǸ´Öƶø²»Êǹ²Ïí¡£
WebÓ¦ÓõÄÏ̷߳çÏÕ
Ò»¸öServletµÄget¡¢post¡¢service·½·¨Äܹ»Í¬Ê±±»¶à¸ö¿Í»§¶Ëµ÷Ó㬶àÏß³ÌServletʵÀýºÍ¾²Ì¬±äÁ¿Êǹ²ÏíµÄ£¬Òò´ËÈç¹ûÊǿɱäµÄ»°£¬ÄÇô·ÃÎʱØÐë¼ÓÒÔе÷¡£ServletÊǵäÐ͵ÄÉúÃüÆÚ³¤ÇÒ±»Ïß³Ì¸ßÆµ¶È¼ÓÔØµÄ¶ÔÏó£¬Èç¹û¹ý·Öͬ²½µÄ»°ÐÔÄÜ»áÊÜÓ°Ï죬»òÕß¾¡Á¿¹²Ïí²»¿É±ä£¨final£©Êý¾Ý£¬»òÕß³¢ÊÔÍêÈ«²»¹²Ïí£¬ÇëÇó²ÎÊýºÍ¾Ö²¿±äÁ¿»á¸ü°²È«¡£
±£³ÖËø¶¨µÄʱ¼ä¾¡¿ÉÄܵĶÌ
ÔÚͬ²½ÇøÄÚÍê³É¾¡¿ÉÄÜÉٵŤ×÷£¬°Ñ²»ÐèÒª¼ÓËøµÄ´úÂë·Åµ½Í¬²½´úÂë¿éÖ®Íâ£¬ÌØ±ðÊÇÈç¹ûÕâЩ´úÂë·Ç³£ºÄʱµÄ»°£¡
Lock½Ó¿Ú±ÈʹÓÃͬ²½´úÂë¿éÌṩÁ˸üÏ꾡µÄËø¶¨²Ù×÷£¬ÆäÓÐÒ»¸öºÃ´¦ÊÇÈç¹ûËøÊDz»¿ÉÓõϰ£¬Ôò²»»áµ¼ÖÂ×èÈû¡£ÄãÓ¦¸ÃÖ»ÓÐÔÚÐèÒªµÄʱºò²Å»ñÈ¡ËøÀ´¶ÁÈ¡»òÕßдÈë¹²ÏíµÄÊý¾Ý£¬²¢ÔÚÒ»¸öfinally×Ó¾äÄÚ²¿½âËø£¬ÒÔÈ·±£Ëø±»ÊÍ·Å¡£ÏÂÃæÊÇÒ»¸öʹÓÃReentrantReadWriteLockµÄÀý×Ó£º
Ò»ÖÖ¼õÉÙ±£³ÖËø¶¨µÄʱ¼äµÄ×ö·¨ÊÇËø·Ö²ð»òÕßËø·ÖÀ룬¸Ã·½·¨ÊÇΪ¸÷¸ö״̬±äÁ¿Ê¹Óò»Í¬µÄËø¶ø²»ÊÇʹÓõ¥¸öËø£¬Õâ¼õСÁËËøµÄÁ£¶È£¬ÌṩÁ˸üºÃµÄ¿ÉÉìËõÐÔ£¬µ«±ØÐëÒª°´ÕÕ¹æÔò˳ÐòÀ´È¡ÓÃËø£¬·ñÔò»áÓÐËÀËøµÄΣÏÕ¡£
Ê×ÏÈÑ¡ÔñexecutorºÍtask¶ø²»ÊÇthread
ʹÓÃJava²¢·¢¹¤¾ßExecutor¿ò¼Ü£¨Java Concurrency Utiliti
Ïà¹ØÎĵµ£º
Ö÷ÒªÊǾٸöÀý×Ó˵Ã÷Ò»ÏÂʲôÓÃthrows£¬Ê²Ã´Ê±ºòÓÃtry-catch¡£
import java.io.BufferedReader;
import java.io.File;
import java.io.FileFilter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Test {
public static void main(String[] ......
javax.servlet.http.HttpSession Õâ¸öÀàÊǺܳ£Óõģ¬Ã¿µ±ÎÒÃÇä¯ÀÀÍøÕ¾£¬²»ÂÛÓÐûÓеǽ£¬¶¼»á²úÉú1¸ösession£¬Ëü¼Ç¼Á˺Íä¯ÀÀÕßÏà¹ØµÄÊý¾Ý£»
ÏÂÃæ½éÉÜsessionµÄ2¸ö¼àÌýÆ÷½Ó¿Ú£º
1£©javax.servlet.http.HttpSessionBindingListener;
ʵÏÖÕâ¸ö½Ó¿ÚµÄÀ࣬ÿµ±±»´æ·Åµ½session»ò´ÓsessionÖÐÒÆ³ý¶¼»á³ö·¢½Ó¿ÚÖÐÏàÓ¦µ ......
³£¼ûµÄJAVA³ÌÐò°üÀ¨ÒÔÏÂÀà±ð£º
*Ö±½ÓÔÚconsoleÉÏÔËÐеÄÀà(°üÀ¨¿ÉÊÓ»¯½çÃæµÄÀà)
*JSP´úÂëÀࣨע£ºJSPÊÇServletsÀàµÄ±äÐÍ£©
*ServeletsÀà
*EJBÀà
*ÆäËü²»¿ÉÒÔÖ±½ÓÔËÐеÄÖ§³ÖÀà
ÕâЩÀàÎļþÖУ¬¶¼ÓпÉÄܺ¬ÓÐÖÐÎÄ×Ö·û´®£¬²¢ÇÒ³£ÓÃǰÈýÀàJAVA³ÌÐòºÍÓû§Ö±½Ó½»»¥£¬ÓÃÓÚÊä³öºÍÊäÈë×Ö·û£¬È磺ÔÚJSPºÍServletÖеõ½¿Í»§¶Ë ......
int temp;
int [] arr=new int[];
for(int i=0;i<arr.length;i++)
{
for(int j=0;j<arr.length-i-1;j++)
{
if(arr[j]<arr[j+1])
{
& ......
ת×Ô£º http://www.j2medev.com/Article/ShowArticle.asp?ArticleID=4465
CookieÔÚWebÓ¦ÓóÌÐòÖб»¹ã·º²ÉÓã¬Î¬»¤ä¯ÀÀÆ÷ºÍ·þÎñÆ÷Ö®¼äµÄ״̬¡£Òź¶µÄÊÇÕâÒ»ÌØÐÔÔÚJava MEƽ̨Öв¢Ã»Óеõ½Ö§³Ö¡£Òò´Ë£¬ÒªÏëά³Ö¿Í»§¶ËºÍ·þÎñÆ÷¶ËµÄ״̬Ôò±ØÐëʹÓÃURLÖØÐ´µÄ·½Ê½¡£URLÖØÐ´²Ù×÷ÆðÀ´±È½ÏÂé·³£¬ËùÒÔÑо¿Ò»ÏÂcookieµÄÔÀí²¢ÔÚ ......