¼ÓÔØ¡¢Á´½ÓºÍ³õʼ»¯£¨java¸ß¼¶±à³Ì1.2.5£©
JVM£º¼ÓÔØ¡¢Á´½ÓºÍ³õʼ»¯
JVMÒª½âÊÍJava×Ö½ÚÂ룬¾Í±ØÐë¶ÔËùÐèµÄÀàºÍ½Ó¿ÚÖ´ÐÐÈçÏÂ3²½²Ù×÷£º
(1) ¼ÓÔØ£ºJVMÔÚ¼ÓÔØÀàʱ£¬»á²éÕÒ¸ÃÀà»ò¸Ã½Ó¿ÚµÄ¶þ½øÖƱíʾ£¬²¢¸ù¾ÝÕÒµ½µÄ¶þ½øÖƱíʾ(ͨ³£ÊÇÓÉJava±àÒëÆ÷´´½¨µÄÀàÎļþ)´´½¨Ò»¸öClass¶ÔÏ󡣸ÃClass¶ÔÏóÖзâ×°ÁËÀà»ò½Ó¿ÚµÄÔËÐÐʱ״̬¡£
(2) Á´½Ó£ºÁ´½ÓÕâÒ»¹ý³ÌÊÇָȡµÃÒѼÓÔØµÄÀà»ò½Ó¿Ú¡¢½áºÏJVMÔËÐÐʱ»·¾³¡¢×¼±¸Ö´ÐиÃÀà»ò¸Ã½Ó¿Ú¡£
(3) ³õʼ»¯£º³õʼ»¯ÊÇÖ¸JVMµ÷ÓøÃÀà»ò¸Ã½Ó¿ÚµÄ³õʼ»¯·½·¨¡£
1. µÚÒ»²½
Æô¶¯Ò»¸öµ¥»úJava³ÌÐòʱ£¬JVMÊ×ÏÈ×öµÄÊÇÁíÍâ´´½¨Ò»¸öClass¶ÔÏó£¬ÓÃÓÚ±íʾ°üº¬public static void main(String
[ ] args)·½·¨µÄJavaÀࡣȻºóJVM»áÁ´½Ó²¢³õʼ»¯¸ÃJavaÀ࣬µ÷ÓÃmain()·½·¨£¬²¢ÓÃmain()·½·¨Çý¶¯ËùÒýÓÃµÄÆäËûÀàºÍ½Ó¿ÚµÄ¼ÓÔØ¡¢Á´½ÓºÍ³õʼ»¯¹ý³Ì¡£
2. ¼ÓÔØ
¼ÓÔØ¹ý³ÌÊÇÓÉÀà¼ÓÔØÆ÷Íê³ÉµÄ£¬¸Ã¼ÓÔØÆ÷ÊÇClassLoaderµÄ×ÓÀ࣬²¢ÇÒ¸ÃÀà¼ÓÔØÆ÷»á¶ÔËù¼ÓÔØµÄÀà»ò½Ó¿Ú½øÐÐһЩУÑé¼ì²é¡£µ±±íʾÒѱàÒëÀà»ò½Ó¿ÚµÄ¶þ½øÖÆÊý¾ÝÓÐ´í£¬ÔòÀà»ò½Ó¿ÚʹÓõÄÀàÎļþ¸ñʽ°æ±¾²»±»Ö§³Ö£¬Àà¼ÓÔØÆ÷ÕÒ²»µ½Àà»ò½Ó¿ÚµÄ¶¨Ò壬»òÕßÈç¹û³öÏÖÀàÑ»·£¬¶¼»áÅ׳öÒì³£¡£ÀàÑ»·ÊÇÖ¸Àà»ò½Ó¿ÚµÄ¸¸ÀàÊÇÆä×ÔÉíµÄÇé¿ö¡£
Àà¼ÓÔØÆ÷Ò»°ãÓÐÁ½ÖÖÀàÐÍ£ºÓÉJVMÌṩµÄÒýµ¼Àà¼ÓÔØÆ÷(bootstrap
class loader)ºÍÓû§¶¨ÒåµÄÀà¼ÓÔØÆ÷¡£Óû§¶¨ÒåµÄÀà¼ÓÔØÆ÷Ò²ÊÇJavaµÄClassLoaderÀàµÄ×ÓÀ࣬ÓÃÓڴӷDZê×¼µÄ¡¢Óû§¶¨ÒåµÄÔ´´´½¨Class¶ÔÏó£¬ÒÔ±ãÌá¸ß°²È«ÐÔ¡£ÀýÈ磬´Ó¼ÓÃÜÎļþÖÐÌáÈ¡Class¶ÔÏó¡£Ò»¸ö¼ÓÔØÆ÷¿ÉÒÔ½«²¿·ÖÉõÖÁÕû¸ö¼ÓÔØ¹ý³ÌίÍиøÁíÒ»¸ö¼ÓÔØÆ÷¡£×îÖÕÉú³ÉClass¶ÔÏóµÄ¼ÓÔØÆ÷³ÆÎª¶¨Òå¼ÓÔØÆ÷(defining loader)£¬¶ø¿ªÊ¼¸Ã¼ÓÔØ¹ý³ÌµÄ¼ÓÔØÆ÷³ÆÎªÆô¶¯¼ÓÔØÆ÷(initiating
loader)¡£
ʹÓÃĬÈÏÒýµ¼Àà¼ÓÔØÆ÷µÄ¼ÓÔØ¹ý³ÌÈçÏ£º¸ù¾ÝËùÒª¼ÓÔØµÄÀàÎļþ£¬Òýµ¼Àà¼ÓÔØÆ÷»áÅжÏ×ÔÉíÊÇ·ñÒѾ³ÉΪ¸ÃÀàµÄÆô¶¯¼ÓÔØÆ÷¡£Èç¹ûÊÇ£¬ÔòClass¶ÔÏó´æÔÚ£¬¼ÓÔØÆ÷Í£Ö¹(×¢Ò⣬¼ÓÔØÒ»¸öÀಢ²»µÈÓÚ´´½¨¸ÃÀàµÄÒ»¸öʵÀý£¬ÕâÒ»²½Öè½ö½öÊÇÔÚJVMÖмÓÈë¸ÃÀà)¡£Èç¹ûÀ໹ûÓмÓÔØ£¬Ôò¼ÓÔØÆ÷»áËÑË÷¶ÔÓ¦µÄÀàÎļþ£¬²¢ÔÚÕÒµ½ºó¸ù¾Ý¸ÃÀàÎļþ´´½¨Class¶ÔÏó¡£Èç¹ûÕÒ²»µ½ÀàÎļþ£¬ÄÇô¾Í»á²úÉúNoClassDefFoundErrorÒì³£¡£
ʹÓÃÓû§¶¨ÒåÀà¼ÓÔØÆ÷ʱ£¬Õû¸ö¼ÓÔØ¹ý³ÌÉÔÓв»Í¬¡£ÓëÒýµ¼¼ÓÔØÆ÷Ò»Ñù£¬Óû§¶¨ÒåµÄ¼ÓÔØÆ÷Ê×ÏÈÅжÏ×ÔÉíÊÇ·ñÒѾ³ÉΪĿ±êÀàÎļþµÄÆô¶¯¼ÓÔØÆ÷¡£Èç¹ûÊÇ£¬ÔòClass¶ÔÏóÒѾ´æÔÚ£¬¼ÓÔØÆ÷Í£Ö¹£¬¶øÈç¹û²»ÊÇ£¬Óû§¶¨ÒåµÄ¼ÓÔØÆ÷»áµ÷ÓÃloadClass()·½·¨¡£loadClass()·½·¨·µ»ØËùÐèµÄÀàÎļþ²¢½«±íʾÀàµÄ
Ïà¹ØÎĵµ£º
±êÌâ ÔÚJavaÖÐʵÏÖ¸¡µãÊýµÄ¾«È·¼ÆËã AYellow£¨Ô×÷£© ÐÞ¸Ä
¹Ø¼ü×Ö Java ¸¡µãÊý ¾«È·¼ÆËã
ÎÊÌâµÄÌá³ö£º
Èç¹ûÎÒÃDZàÒëÔËÐÐÏÂÃæÕâ¸ö³ÌÐò»á¿´µ½Ê²Ã´£¿
public class Test{
public static void mai ......
ʹÓà Java ¶Ô Linux ÏÂÎļþ±àÂë¸ñʽ½øÐÐÅúÁ¿×ª»»
²âÊÔʹÓÃ˵Ã÷£º
1¡£½« ×Ö·û¼¯±àÂë¸ñʽΪ GB2312 µÄÎļþ test0.java£¬test1.java£¬test2.java ·ÅÔÚ /home/defonds/tmp/test Ŀ¼Ï£¨test0.java£¬test1.java£¬test2.java ×÷Õß¿ÉÒÔ ......
java¶àÏß³ÌͨÐÅ ÊÕ²Ø
×ªÔØÇë×¢Ã÷:À´×Ôhttp://blog.csdn.net/M_ChangGong/ ×÷Õß:ÕÅÑà¹ã
java¶àÏß³ÌͨÐÅ£¬Ä£ÄâÉú²úÕß-Ïû·ÑÕß¹ØÏµ¡£
µÚ1ÖÖʵÏÖ£¨¸ÃʵÏÖ´æÔÚÎÊÌ⣩£¬¾ßÌå´úÂëÈçÏ£º
view plaincopy to clipboardprint?
package com.zhangyg.thread.mytest;
/**
* Ä£ÄâÉú²úÕß- ......
Java™ ÓïÑÔ°üº¬Á½ÖÖÄÚÔÚµÄͬ²½»úÖÆ£ºÍ¬²½¿é£¨»ò·½·¨£©ºÍ volatile ±äÁ¿¡£ÕâÁ½ÖÖ»úÖÆµÄÌá³ö¶¼ÊÇΪÁËʵÏÖ´úÂëÏ̵߳ݲȫÐÔ¡£ÆäÖÐ Volatile ±äÁ¿µÄͬ²½ÐԽϲµ«ÓÐʱËü¸ü¼òµ¥²¢ÇÒ¿ªÏú¸üµÍ£©£¬¶øÇÒÆäʹÓÃÒ²¸üÈÝÒ׳ö´í¡£ÔÚÕâÆÚµÄ Java ÀíÂÛÓëʵ¼ù
ÖУ¬Brian Goetz ½«½éÉܼ¸ÖÖÕýȷʹÓà volatile ±äÁ¿µÄģʽ£¬²¢Õë¶ÔÆäÊÊÓ ......