JavaÀíÂÛÓëʵ¼ù:ÕýȷʹÓÃvolatile±äÁ¿
Java™ÓïÑÔ°üº¬Á½ÖÖÄÚÔÚµÄͬ²½»úÖÆ£ºÍ¬²½¿é£¨»ò·½·¨£©ºÍvolatile±äÁ¿¡£ÕâÁ½ÖÖ»úÖÆµÄÌá³ö¶¼ÊÇΪÁËʵÏÖ´úÂëÏ̵߳ݲȫÐÔ¡£ÆäÖÐvolatile±äÁ¿µÄͬ²½ÐԽϲµ«ÓÐʱËü¸ü¼òµ¥²¢ÇÒ¿ªÏú¸üµÍ£©£¬¶øÇÒÆäʹÓÃÒ²¸üÈÝÒ׳ö´í¡£ÔÚÕâÆÚµÄJavaÀíÂÛÓëʵ¼ùÖУ¬Brian Goetz½«½éÉܼ¸ÖÖÕýȷʹÓÃvolatile±äÁ¿µÄģʽ£¬²¢Õë¶ÔÆäÊÊÓÃÐÔÏÞÖÆÌá³öһЩ½¨Òé¡£
JavaÓïÑÔÖеÄvolatile±äÁ¿¿ÉÒÔ±»¿´×÷ÊÇÒ»ÖÖ“³Ì¶È½ÏÇáµÄsynchronized”£»Óësynchronized¿éÏà±È£¬volatile±äÁ¿ËùÐèµÄ±àÂë½ÏÉÙ£¬²¢ÇÒÔËÐÐʱ¿ªÏúÒ²½ÏÉÙ£¬µ«ÊÇËüËùÄÜʵÏֵŦÄÜÒ²½öÊÇsynchronizedµÄÒ»²¿·Ö¡£±¾ÎĽéÉÜÁ˼¸ÖÖÓÐЧʹÓÃvolatile±äÁ¿µÄģʽ£¬²¢Ç¿µ÷Á˼¸ÖÖ²»ÊʺÏʹÓÃvolatile±äÁ¿µÄÇéÐΡ£
ËøÌṩÁËÁ½ÖÖÖ÷ÒªÌØÐÔ£º»¥³â£¨mutual exclusion£©ºÍ¿É¼ûÐÔ£¨visibility£©¡£»¥³â¼´Ò»´ÎÖ»ÔÊÐíÒ»¸öÏ̳߳ÖÓÐij¸öÌØ¶¨µÄËø£¬Òò´Ë¿ÉʹÓøÃÌØÐÔʵÏÖ¶Ô¹²ÏíÊý¾ÝµÄе÷·ÃÎÊÐÒ飬ÕâÑù£¬Ò»´Î¾ÍÖ»ÓÐÒ»¸öÏß³ÌÄܹ»Ê¹Óøù²ÏíÊý¾Ý¡£¿É¼ûÐÔÒª¸ü¼Ó¸´ÔÓһЩ£¬Ëü±ØÐëÈ·±£ÊÍ·ÅËøÖ®Ç°¶Ô¹²ÏíÊý¾Ý×ö³öµÄ¸ü¸Ä¶ÔÓÚËæºó»ñµÃ¸ÃËøµÄÁíÒ»¸öÏß³ÌÊǿɼûµÄ——Èç¹ûûÓÐͬ²½»úÖÆÌṩµÄÕâÖֿɼûÐÔ±£Ö¤£¬Ï߳̿´µ½µÄ¹²Ïí±äÁ¿¿ÉÄÜÊÇÐÞ¸ÄǰµÄÖµ»ò²»Ò»ÖµÄÖµ£¬Õ⽫Òý·¢Ðí¶àÑÏÖØÎÊÌâ¡£
volatile±äÁ¿
volatile±äÁ¿¾ßÓÐsynchronizedµÄ¿É¼ûÐÔÌØÐÔ£¬µ«ÊDz»¾ß±¸Ô×ÓÌØÐÔ¡£Õâ¾ÍÊÇ˵Ïß³ÌÄܹ»×Ô¶¯·¢ÏÖvolatile±äÁ¿µÄ×îÐÂÖµ¡£Volatile±äÁ¿¿ÉÓÃÓÚÌṩḬ̈߳²È«£¬µ«ÊÇÖ»ÄÜÓ¦ÓÃÓڷdz£ÓÐÏÞµÄÒ»×éÓÃÀý£º¶à¸ö±äÁ¿Ö®¼ä»òÕßij¸ö±äÁ¿µÄµ±Ç°ÖµÓëÐ޸ĺóÖµÖ®¼äûÓÐÔ¼Êø¡£Òò´Ë£¬µ¥¶ÀʹÓÃvolatile»¹²»×ãÒÔʵÏÖ¼ÆÊýÆ÷¡¢»¥³âËø»òÈκξßÓÐÓë¶à¸ö±äÁ¿Ïà¹ØµÄ²»±äʽ£¨Invariants£©µÄÀࣨÀýÈç“start<=end”£©¡£
³öÓÚ¼òÒ×ÐÔ»ò¿ÉÉìËõÐԵĿ¼ÂÇ£¬Äú¿ÉÄÜÇãÏòÓÚʹÓÃvolatile±äÁ¿¶ø²»ÊÇËø¡£µ±Ê¹ÓÃvolatile±äÁ¿¶ø·ÇËøÊ±£¬Ä³Ð©Ï°¹ßÓ÷¨£¨idiom£©¸ü¼ÓÒ×ÓÚ±àÂëºÍÔĶÁ¡£´ËÍ⣬volatile±äÁ¿²»»áÏñËøÄÇÑùÔì³ÉÏß³Ì×èÈû£¬Òò´ËÒ²ºÜÉÙÔì³É¿ÉÉìËõÐÔÎÊÌâ¡£ÔÚijЩÇé¿öÏ£¬Èç¹û¶Á²Ù×÷Ô¶Ô¶´óÓÚд²Ù×÷£¬volatile±äÁ¿»¹¿ÉÒÔÌṩÓÅÓÚËøµÄÐÔÄÜÓÅÊÆ¡£
ÕýȷʹÓÃvolatile±äÁ¿µÄÌõ¼þ
ÄúÖ»ÄÜÔÚÓÐÏÞµÄһЩÇéÐÎÏÂʹÓÃvolatile±äÁ¿Ìæ´úËø¡£ÒªÊ¹volatile±äÁ¿ÌṩÀíÏëµÄḬ̈߳²È«£¬±ØÐëͬʱÂú×ãÏÂÃæÁ½¸öÌõ¼þ£º
1. ¶Ô±äÁ¿µÄд²Ù×÷²»ÒÀÀµÓÚµ±Ç°Öµ¡£
2. ¸Ã±äÁ¿Ã»Óаüº¬ÔÚ¾ßÓÐÆäËû±äÁ¿µÄ²»±äʽÖÐ
Ïà¹ØÎĵµ£º
ÍøÕ¾ÁбíÈçÏ£º
IBMÖйúµÄ¿ª·¢ÕßÍøÕ¾£ºhttp://www.ibm.com/developerworks/cn/
IBMÖйúfor javaµÄ¿ª·¢ÕßÍøÕ¾£ºhttp://www.ibm.com/developerworks/cn/java/ ÖÐÎÄ
IBMÖйúfor javaµÄ¿ª·¢ÕßÍøÕ¾£ºhttp://www.ibm.com/developerworks/java Ó¢ÎÄ
Google´úÂëÄ¿Â¼ÍøÕ¾£ºhttp://c ......
£¨
1
£©
+=
:sum += 1;
Ï൱ÓÚ
sum = sum + 1;
£¨
2
£©
++ --
:i++ i
¼Ó
1, i-- i
¼õ
1, ++
»ò
—
·ÅÔÚÊýÖµºó£¬±íʾִÐÐÔËËãºó¼Ó£¨¼õ£©
1
£¬·´ÕýÊýֵǰ±íʾִÐÐÔËËãǰ¼Ó£¨¼õ£©
1
£¨
3
£©
?
: :
int n = a<10?1:2
±íʾÈç¹û
a
СÓÚ
10
Ôò
n
µÈÓÚ
1
·ñÔòµÈÓÚ
2
£¨
4
......
ÏîÄ¿ÊÇ»ùÓÚGMTʱ¼äµÄ£¬ÔÚϵͳÆô¶¯µÄʱºò£¬ÎÒÃǾͻáµ÷ÓÃTimeZone.setDefault(timeZone)½«Ä¬ÈÏÊ±ÇøÉèΪGMT¡£
ºóÀ´Í»È»·¢ÏÖ£¬ÓÐʱÓû§Ñ¡ÔñµÄʱ¼ä¾¹ýºǫ́һȦºó»Ø²úÉú8¸öСʱÎó²î¡£ÓÖÊǼäЪÐԵģ¬ÒªËûÖØÏÖµÄʱºòÓÖÆ«²»À´¡£¿àÐÄdebug£¬ÖÕÓÚ·¢ÏÖÔÚ²¿·ÖÏß³ÌÖУ¬Ê±Çø»¹ÊÇGMT+8£¬ºǫ́ij¸öµ÷ÓÿÉÄܰÑÊ±Çø ......
JEditorPaneÌṩÈýÖÖÀàÐ͵ÄÎı¾ÏÔʾ£¬text/plain,text/html,text/rtf.
JEditorPaneµÄ¼òµ¥Ó÷¨DEMOÈçÏ£º
package ibees.swing;
import java.awt.Toolkit;
import java.io.IOException;
import javax.swing.JEditorPane;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.event.Hype ......
³¢ÊÔÓÃDOM4j½âÎöspringÅäÖÃÎļþʱ,µÚÒ»²½¶ÁÈ¡Îļþʱ£¬»ñȡ·¾¶¾ÍÓöµ½ÁËÎÊÌ⣬¡£¡£¡£¾¹ýgoogleÁËn+log n ´Î¸öÒ³Ãæ£¬²ÅËãÓÐÁ˸ö´ÖdzµÄÈÏʶ£¬ÏÂÃæ¾ÍÈÃÎÒÓüò¶ÌµÄ»°ÓïÀ´×ܽáһϣ¨ºÃÏñÕâ¶Î¾ÍÈ«ÊÇ·Ï»°¡£¡£¡££©¡£¡£¡£
1¡¢springµÄÅäÖÃÎļþ´æ·ÅλÖÃÓÉweb.xmlÀïµÄcontextConfigLocationÀ´È·¶¨£¬Ò»°ãÊÇ·ÅÔÚweb-inf»òÕßÊÇsrc¸ùÄ¿Â¼Ï ......