Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

JavaÄÚ´æÄ£ÐÍ

ÔÚÁ˽âJavaµÄͬ²½ÃØÃÜ֮ǰ£¬ÏÈÀ´¿´¿´JMM(Java Memory Model)¡£
Java±»Éè¼ÆÎª¿çƽ̨µÄÓïÑÔ£¬ÔÚÄÚ´æ¹ÜÀíÉÏ£¬ÏÔȻҲҪÓÐÒ»¸öͳһµÄÄ£ÐÍ¡£¶øÇÒJavaÓïÑÔ×î´óµÄÌØµã¾ÍÊǷϳýÁËÖ¸Õ룬°Ñ³ÌÐòÔ±´ÓÍ´¿àÖнâÍѳöÀ´£¬²»ÓÃÔÙ¿¼ÂÇÄÚ´æÊ¹Óú͹ÜÀí·½ÃæµÄÎÊÌâ¡£
¿ÉϧÊÀÊÂ×ܲ»¾¡ÈçÈËÒ⣬ËäÈ»JMMÉè¼ÆÉÏ·½±ãÁ˳ÌÐòÔ±£¬µ«ÊÇËüÔö¼ÓÁËÐéÄâ»úµÄ¸´Ôӳ̶ȣ¬¶øÇÒ»¹µ¼ÖÂijЩ±à³Ì¼¼ÇÉÔÚJavaÓïÑÔÖÐʧЧ¡£
JMMÖ÷ÒªÊÇΪÁ˹涨ÁËÏ̺߳ÍÄÚ´æÖ®¼äµÄһЩ¹ØÏµ¡£¶ÔJava³ÌÐòÔ±À´ËµÖ»Ð踺ÔðÓÃsynchronizedͬ²½¹Ø¼ü×Ö£¬ÆäËüÖîÈçÓëÏß³Ì/ÄÚ´æÖ®¼ä½øÐÐÊý¾Ý½»»»/ͬ²½µÈ·±Ëö¹¤×÷¾ùÓÉÐéÄâ»ú¸ºÔðÍê³É¡£Èçͼ1Ëùʾ£º¸ù¾ÝJMMµÄÉè¼Æ£¬ÏµÍ³´æÔÚÒ»¸öÖ÷ÄÚ´æ(Main Memory)£¬JavaÖÐËùÓбäÁ¿¶¼´¢´æÔÚÖ÷´æÖУ¬¶ÔÓÚËùÓÐÏ̶߳¼Êǹ²ÏíµÄ¡£Ã¿ÌõÏ̶߳¼ÓÐ×Ô¼ºµÄ¹¤×÷ÄÚ´æ(Working Memory)£¬¹¤×÷ÄÚ´æÖб£´æµÄÊÇÖ÷´æÖÐijЩ±äÁ¿µÄ¿½±´£¬Ï̶߳ÔËùÓбäÁ¿µÄ²Ù×÷¶¼ÊÇÔÚ¹¤×÷ÄÚ´æÖнøÐУ¬Ïß³ÌÖ®¼äÎÞ·¨Ï໥ֱ½Ó·ÃÎÊ£¬±äÁ¿´«µÝ¾ùÐèҪͨ¹ýÖ÷´æÍê³É¡£
ͼ1 JavaÄÚ´æÄ£ÐÍʾÀýͼ
Ïß³ÌÈôÒª¶Ôij±äÁ¿½øÐвÙ×÷£¬±ØÐë¾­¹ýһϵÁв½Ö裺Ê×ÏÈ´ÓÖ÷´æ¸´ÖÆ/Ë¢ÐÂÊý¾Ýµ½¹¤×÷Äڴ棬ȻºóÖ´ÐдúÂ룬½øÐÐÒýÓÃ/¸³Öµ²Ù×÷£¬×îºó°Ñ±äÁ¿ÄÚÈÝд»ØMain Memory¡£JavaÓïÑԹ淶(JLS)ÖжÔÏ̺߳ÍÖ÷´æ»¥²Ù×÷¶¨ÒåÁË6¸öÐÐΪ£¬·Ö±ðΪload£¬save£¬read£¬write£¬assignºÍuse£¬ÕâЩ²Ù×÷ÐÐΪ¾ßÓÐÔ­×ÓÐÔ£¬ÇÒÏ໥ÒÀÀµ£¬ÓÐÃ÷È·µÄµ÷ÓÃÏȺó˳Ðò¡£¾ßÌåµÄÃèÊöÇë²Î¼ûJLSµÚ17Õ¡£
ÎÒÃÇÔÚÇ°ÃæµÄÕ½ڽéÉÜÁËsynchronizedµÄ×÷Óã¬ÏÖÔÚ£¬´ÓJMMµÄ½Ç¶ÈÀ´ÖØÐÂÉóÊÓsynchronized¹Ø¼ü×Ö¡£
¼ÙÉèijÌõÏß³ÌÖ´ÐÐÒ»¸ösynchronized´úÂë¶Î£¬Æä¼ä¶Ôij±äÁ¿½øÐвÙ×÷£¬JVM»áÒÀ´ÎÖ´ÐÐÈç϶¯×÷£º
(1) »ñȡͬ²½¶ÔÏómonitor (lock)
(2) ´ÓÖ÷´æ¸´ÖƱäÁ¿µ½µ±Ç°¹¤×÷ÄÚ´æ (read and load)
(3) Ö´ÐдúÂ룬¸Ä±ä¹²Ïí±äÁ¿Öµ (use and assign)
(4) Óù¤×÷ÄÚ´æÊý¾ÝË¢ÐÂÖ÷´æÏà¹ØÄÚÈÝ (store and write)
(5) ÊÍ·Åͬ²½¶ÔÏóËø (unlock)
¿É¼û£¬synchronizedµÄÁíÍâÒ»¸ö×÷ÓÃÊDZ£Ö¤Ö÷´æÄÚÈݺÍÏ̵߳Ť×÷ÄÚ´æÖеÄÊý¾ÝµÄÒ»ÖÂÐÔ¡£Èç¹ûûÓÐʹÓÃsynchronized¹Ø¼ü×Ö£¬JVM²»±£Ö¤µÚ2²½ºÍµÚ4²½»áÑϸñ°´ÕÕÉÏÊö´ÎÐòÁ¢¼´Ö´ÐС£ÒòΪ¸ù¾ÝJLSÖеĹ涨£¬Ï̵߳Ť×÷ÄÚ´æºÍÖ÷´æÖ®¼äµÄÊý¾Ý½»»»ÊÇËÉñîºÏµÄ£¬Ê²Ã´Ê±ºòÐèҪˢй¤×÷ÄÚ´æ»òÕ߸üÐÂÖ÷ÄÚ´æÄÚÈÝ£¬¿ÉÒÔÓɾßÌåµÄÐéÄâ»úʵÏÖ×ÔÐоö¶¨¡£Èç¹û¶à¸öÏß³ÌͬʱִÐÐÒ»¶Îδ¾­synchronized±£»¤µÄ´úÂë¶Î£¬ºÜÓпÉÄÜijÌõÏß³ÌÒѾ­¸Ä¶¯Á˱äÁ¿µÄÖµ£¬µ«ÊÇÆäËûÏß³ÌÈ´ÎÞ·¨¿´µ½Õâ¸ö¸Ä¶¯£¬ÒÀÈ»ÔھɵÄ


Ïà¹ØÎĵµ£º

¡¾×ª¡¿Ãô½Ý¿ª·¢Öбàд¸ßÖÊÁ¿Java´úÂë

Ãô½Ý¿ª·¢µÄÀíÄîÒѾ­Á÷ÐÐÁ˺ܳ¤µÄʱ¼ä£¬ÔÚÃô½Ý¿ª·¢ÖеĿª·¢µü´ú½×¶ÎÖУ¬ÎÒÃÇ¿ÉÒÔͨ¹ýÎå¸ö²½Ö裬À´ÓÐЧµÄÌá¸ßÕû¸öÏîÄ¿µÄ´úÂëÖÊÁ¿¡£
JavaÏîÄ¿¿ª·¢¹ý³ÌÖУ¬ÓÉÓÚ¿ª·¢ÈËÔ±µÄ¾­Ñé¡¢Java´úÂë±àдϰ¹ß£¬ÒÔ¼°È±·¦Í³Ò»µÄ±ê×¼ºÍ¹ÜÀíÁ÷³Ì£¬ÍùÍùµ¼ÖÂÕû¸öÏîÄ¿µÄ´úÂëÖÊÁ¿½Ï²î£¬ÄÑÓÚά
»¤£¬ÐèÒª½Ï´óµÄ²âÊÔͶÈëºÍÖÜÆÚµÈÎÊÌâ¡£ÕâЩÎÊÌâÔÚÒ»¸ ......

Java¶àÏ̱߳à³Ì×ܽá

Java¶àÏ̱߳à³Ì×ܽá
 
ÏÂÃæÊÇJavaÏß³ÌϵÁв©ÎĵÄÒ»¸ö±àÄ¿£º
 
JavaỊ̈߳º¸ÅÄîÓëÔ­Àí
JavaỊ̈߳º´´½¨ÓëÆô¶¯
JavaỊ̈߳ºÏß³ÌջģÐÍÓëÏ̵߳ıäÁ¿
JavaỊ̈߳ºÏß³Ì״̬µÄת»»
JavaỊ̈߳ºÏ̵߳Äͬ²½ÓëËø
JavaỊ̈߳ºÏ̵߳Ľ»»¥
JavaỊ̈߳ºÏ̵߳ĵ÷¶È-ÐÝÃß
JavaỊ̈߳ºÏ̵߳ĵ÷¶È-ÓÅÏȼ¶
JavaỊ̈߳ºÏß ......

JavaỊ̈߳º¸ÅÄîÓëÔ­Àí


JavaỊ̈߳º¸ÅÄîÓëÔ­Àí
 
SCJP5ѧϰ±Ê¼Ç
 
Ò»¡¢²Ù×÷ϵͳÖÐÏ̺߳ͽø³ÌµÄ¸ÅÄî
ÏÖÔڵIJÙ×÷ϵͳÊǶàÈÎÎñ²Ù×÷ϵͳ¡£¶àÏß³ÌÊÇʵÏÖ¶àÈÎÎñµÄÒ»ÖÖ·½Ê½¡£
½ø³ÌÊÇÖ¸Ò»¸öÄÚ´æÖÐÔËÐеÄÓ¦ÓóÌÐò£¬Ã¿¸ö½ø³Ì¶¼ÓÐ×Ô¼º¶ÀÁ¢µÄÒ»¿éÄÚ´æ¿Õ¼ä£¬Ò»¸ö½ø³ÌÖпÉÒÔÆô¶¯¶à¸öÏ̡߳£±ÈÈçÔÚWindowsϵͳÖУ¬Ò»¸öÔËÐеÄexe¾ÍÊÇÒ»¸ö½ø³Ì¡£
& ......

JavaỊ̈߳ºÏ̵߳ĵ÷¶È ÐÝÃß

JavaỊ̈߳ºÏ̵߳ĵ÷¶È-ÐÝÃß
 
JavaÏ̵߳÷¶ÈÊÇJava¶àÏ̵߳ĺËÐÄ£¬Ö»ÓÐÁ¼ºÃµÄµ÷¶È£¬²ÅÄܳä·Ö·¢»ÓϵͳµÄÐÔÄÜ£¬Ìá¸ß³ÌÐòµÄÖ´ÐÐЧÂÊ¡£
 
ÕâÀïÒªÃ÷È·µÄÒ»µã£¬²»¹Ü³ÌÐòÔ±Ôõô±àдµ÷¶È£¬Ö»ÄÜ×î´óÏ޶ȵÄÓ°ÏìÏß³ÌÖ´ÐеĴÎÐò£¬¶ø²»ÄÜ×öµ½¾«×¼¿ØÖÆ¡£
 
Ïß³ÌÐÝÃßµÄÄ¿µÄÊÇʹÏß³ÌÈóöCPUµÄ×î¼òµ¥µÄ×ö·¨Ö®Ò»£¬Ïß³ÌÐÝÃß ......

JavaÖеÄ×Ö·û±àÂëÓë½âÂë


import
 java
.io.BufferedReader;   
import
 java
.io.FileInputStream;   
import
 java
.io.FileNotFoundException;   
import
 java
.io.FileOutputStream;   
import
 java
.io.IOException;   
import
 java
. ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ