Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
JavaÐéÄâ»ú£¨JVM£©¸ÅÊö
 
  3132  次浏览      27
 2018-1-5 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚ³½Î磬±¾ÎÄÖ÷Òª¶ÔJVM½øÐиÅÊö£¬²¢½éÉÜJava³ÌÐòÊÇÈçºÎÔÚÉÏÃæÖ´Ðеġ£

JVM£¨JavaÐéÄâ»ú£©ÊÇÒ»¸ö³éÏóµÄ¼ÆËãÄ£ÐÍ¡£¾ÍÈçÍ¬Ò»Ì¨ÕæÊµµÄ»úÆ÷£¬ËüÓÐ×Ô¼ºµÄÖ¸ÁºÍÖ´ÐÐÒýÇæ£¬¿ÉÒÔÔÚÔËÐÐʱ²Ù¿ØÄÚ´æÇøÓò¡£Ä¿µÄÊÇΪ¹¹½¨ÔÚÆäÉÏÔËÐеÄÓ¦ÓóÌÐòÌṩһ¸öÔËÐл·¾³¡£JVM¿ÉÒÔ½â¶ÁÖ¸Áî´úÂë²¢Óëµ×²ã½øÐн»»¥£º°üÀ¨²Ù×÷ϵͳƽ̨ºÍÖ´ÐÐÖ¸Áî²¢¹ÜÀí×ÊÔ´µÄÓ²¼þÌåϵ½á¹¹¡£

ÐéÄâ»ú

´Ó±¾ÖÊÉϽ²£¬ÐéÄâ»úÊǸö±»¹¹½¨À´Ìá¹©ÌØ¶¨»òͨÓÃÄ¿µÄ·þÎñ»·¾³µÄ·ÇʵÌ弯Ëã»ú¡£ÕâÌýÆðÀ´ÏñÊÇÒ»¸ö·ÂÕæÆ÷£¬ÓÃÀ´·ÂÕæ»úÆ÷δÅäÖûò²»Äܰ´ÒªÇóÖ´ÐÐÈÎÎñµÄÓ²¼þ×é¼þ¡£Òò´Ë£¬ÎÒÃÇÒª×öµÄ¾ÍÊÇ´´½¨Ò»¸öÈí¼þ£¬ÒÔÈí¼þµÄÐÎʽģÄâÓ²¼þÌṩµÄ·þÎñ£¬Ê¹Ö®¿´ÆðÀ´Õâ¸öÌØ¶¨µÄÓ²¼þÔÚϵͳÖÐÊÇʵ¼Ê´æÔڵġ£ÐéÄâ»úÔÚÒ»¶¨³Ì¶ÈÉÏʹÓÃCPUÐéÄ⻯£¬ÎªÊµ¼ÊµÄÓ²¼þÎÊÌâÌṩһ¸ö½Ó¿Ú¡£ËùÒÔ¿ÉÒÔ˵Ëüʵ¼ÊÉÏÓÐÁ½ÖÖ¹¦ÄÜ£ºÌṩһ¸öÐéÄâµÄ»·¾³£¬»òÕß½«Ä³Ð©²»´æÔÚµÄÊÂÎï½øÐгéÏ󻯡£µ«Êǵ±ÎÒÃÇÉîÈëÁ˽âÖ®ºó»á·¢ÏÖ£¬ÕâÁ½ÖÖ¹¦ÄÜÓÐןÜÃ÷ÏԵIJ»Í¬¡£ÎÒÃÇÏÖÔÚÔÝÇÒ²»¿´ËüÃÇÖ®¼äµÄ²»Í¬µã£¬ËüÃǵĹ²Í¬µãÔÚÓÚ¶¼¡°¼Ù×°¡±³ÉËüÃDz»ÊǵĶ«Î÷¡£ÕýÈçPopekºÍGoldbergÔÚÂÛÎÄ¡°Formal Requirements for Virtualizable Third Generation Architectures¡±Àï˵µÄ£¬ËüÊÇ¡°Ò»¸öÕæÊµ»úÆ÷ÓÐЧ¡¢¶ÀÁ¢µÄ¸´ÖÆÆ·¡£¡±

»ùÓÚ²»Í¬µÄÐèÇóºÍÓÃ;£¬ÐéÄâ»úÓкܶàÀàÐÍ¡£Ò»ÖÖ½ÐÍêÈ«ÐéÄ⻯£¨full virtualization£©£¬ÕâÖÖÐéÄâ»ú±íÏÖµÃÏñÒ»Ì¨ÕæÕýµÄ»úÆ÷¡£ÆäËûÀàÐ͵ÄÐéÄâ»ú»á¸ü¾«Ï¸£¬¸üרҵ£¬±ÈÈç½ø³ÌÐéÄ⻯(process virtualization)¡£¶ø¶ÔJVM½øÐзÖÀàÊǺÜÀ§Äѵģ¬ÒòΪËü¶ÔCPU½øÐÐÁËÐéÄ⻯£¬ÓÐ×Ô¼ºµÄÔËÐÐʱ»·¾³¡¢Óëµ×²ãƽ̨Эµ÷¹¤×÷µÄÄÚ´æ¹ÜÀíÆ÷¡¢À¬»øÊÕ¼¯Æ÷£¬µ±È»»¹ÓдóÁ¿×÷ΪÖмä×Ö½ÚÂëÊäÈëµÄÀà¿â£¬×îºóµ«Í¬ÑùÖØÒªµÄÊÇ£¬ËüÄܹ»Ä£Äâ»úÆ÷µÄ¼Ä´æÆ÷¡¢¶ÑÕ»µÈµÈ¡£¼òµ¥µØËµ£¬ËüÊDZ»Java±àÒëÆ÷±àÒëΪjavaµÄ±¾ÖÊ¡ª¡ª×Ö½ÚÂëµÄÓÎÀÖ³¡¡£×Ö½ÚÂëʵ¼ÊÉÏÊÇJVMÓÃÀ´½«´úÂëÖØÐ·­ÒëΪ±¾µØ»úÆ÷Ö¸ÁîËùʹÓõĻúÆ÷´úÂë¡£

ÀàÎļþ¸ñʽ

ÓÐȤµÄÊÇ£¬ÆäʵJVM²¢²»¹ØÐÄJavaÓïÑÔ»òÆäËû±à³ÌÓïÑÔµÄÓïÒåºÍÓï·¨½á¹¹¡£µ±JVMÖ´ÐÐÒ»¶Î³ÌÐòµÄʱºò£¬ËüÖ÷Òª¹Ø×¢µÄÊÇÒ»ÖÖ³ÆÎª¡°ÀàÎļþ¡±µÄÌØ¶¨Îļþ¸ñʽ¡£*.classÀàÎļþ¸ñʽºÍJava´úÂ붨ÒåµÄÃæÏò¶ÔÏóµÄÀà½á¹¹ºÁÎÞ¹ØÏµ¡£±àÒëÆ÷½«*.javaÎļþ±àÒë³É*.classÎļþ£¬È»ºóJVM¶Ô*.classÎļþ½øÐнâÒ룬Ëü²»¹ØÐÄÕâ¸öÀàÎļþÊÇÓÉÄÄÖÖ±àÒëÆ÷Éú³ÉµÄ£¬Ö»Òª·ûºÏÀàÎļþµÄÎļþ¸ñʽ¼´¿É¡£Java±àÒëÆ÷½«Ò»¶Î³ÌÐò±àÒëΪµÈ¼ÛµÄÀàÎļþ¡£ÕâЩÀàÎļþʵ¼ÊÉϰüº¬Á˰ë±àÒëµÄ´úÂ롪¡ª×Ö½ÚÂë¡£Ö®ËùÒÔ³ÆÖ®Îª°ë±àÒ룬ÊÇÒòΪ×Ö½ÚÂë²¢²»ÏñC/C++±àÒëÆ÷±àÒëµÄ¶þ½øÖÆÎļþÒ»Ñù»á±»Ö±½ÓÖ´ÐС£×Ö½ÚÂëÒªÏȱ»ÊäÈëµ½JVMÖУ¬È»ºóÔÙת»»Îªµ×²ãƽ̨¿ÉÒÔÖ´ÐеÄ×îÖÕÖ¸Áî¡£ËùÒÔ×Ö½ÚÂë°üº¬ÁËJVMµÄÖ¸Áî¡¢·ûºÅ±íºÍÆäËûµÄ¸¨ÖúÐÅÏ¢¡£²»¹ÜºÎÖÖÓïÑÔ£¬Äܸù¾ÝJVMµÄÓï·¨ºÍ½á¹¹Ô¼Êø±àÒëÉú³É×Ö½ÚÂëµÄ±àÒëÆ÷£¬¶¼ÊÇÒ»¸ö¿ÉÒÔÔÚJVMÉÏÖ´ÐеĺòÑ¡Õß¡£

JVMµÄ¶¨Î»

JVM½«×ÔÉí¶¨Î»ÓÚ×Ö½ÚÂëºÍµ×²ãƽ̨֮¼ä¡£µ×²ãƽ̨ÊÇÖ¸²Ù×÷ϵͳ£¨OS£©ºÍÓ²¼þ¡£²Ù×÷ϵͳºÍÓ²¼þÌåϵ½á¹¹ÔÚ²»Í¬µÄ»úÆ÷ÉÏ¿ÉÄܲ»Í¬£¬µ«ÊÇͬһ¶ÎJava³ÌÐò¿ÉÒÔ²»ÓÃ×öÈκεĴúÂëÐ޸ľÍÄÜÔÚ²»Í¬µÄ»úÆ÷ÉÏÔËÐС£ÕâÊÇÔÚÐéÄâ»·¾³ÖÐÖ´ÐеijÌÐòÓïÑԵĶÀÌØÖ®´¦¡£ÀýÈ磬ÓÉÆäËû³ÌÐòÓïÑÔ±àÒëÆ÷±àÒëµÄÄ¿±ê´úÂëÈçC++ºÍJavaÏà±ÈµÄ²»Í¬µãÔÚÓÚ£¬C++³ÌÐòÐèÒª±»Ìض¨Æ½Ì¨µÄ±àÒëÆ÷ÖØÐ±àÒ룬´Ó¶øÊ¹ËüÄÜÔÚ²»Í¬µÄÌåϵ½á¹¹ÉÏÃæÔËÐС£¶øJava´úÂë²¢²»ÐèÒª×öÈκθı䣬ÒòΪÓÉJava±àÒëÆ÷±àÒëµÄ×Ö½ÚÂëÊÇÔÚÍâΧµÄJVMÉÏÖ´ÐС£Òò´Ë£¬JVM¸ºÔðÖØÐ½âÒëÓÉJava±àÒëÆ÷Éú³ÉµÄ×Ö½ÚÂ룬²¢ºÍµ×²ãƽ̨Эµ÷¹¤×÷¡£Ò²¾ÍÊÇ˵£¬¾¡¹ÜJava±àÒëÆ÷Éú³ÉµÄ½á¹ûÊÇÆ½Ì¨¶ÀÁ¢µÄ£¬µ«JVMÓëÌØ¶¨Æ½Ì¨Ïà¹ØµÄ¡£³ý·ÇÁ½Ì¨»úÆ÷ÓÐÏàͬµÄÌåϵ½á¹¹£¬ÔÚij¸öÌåϵ½á¹¹Éϰ²×°ºÍʹÓõÄJVM¿ÉÄÜ»»Ò»Ì¨»úÆ÷¾Í²»ÄÜÕý³£¹¤×÷ÁË¡£

ͼ1:JVM½á¹¹

Ïà¶ÔÓÚJVM, JREºÍJDKÓÖÊÇʲô£¿

ÏëÒªÔËÐÐJava³ÌÐò£¬ÎÒÃÇÐèÒªJVMÒòΪËüÌṩÁË×Ö½ÚÂëµÄÔËÐл·¾³¡£OracleÌṩÁËÁ½ÖÖ²»Í¬µÄ²úÆ·£ºJDK£¨Java¿ª·¢¹¤¾ß£©ºÍJRE£¨JavaÔËÐл·¾³£©¡£JREÊÇÎÒÃǰ²×°ÔËÐÐJava³ÌÐòµÄ×î»ù±¾Èí¼þ¡£ËüºÍJavaÀà¿âÒÔ¼°ÔËÐÐJava³ÌÐòËùÐèÒªµÄÆäËû×é¼þÒ»Æð¹»³ÉÁËJVMµÄÒ»¸öʵÏÖ¡£ËùÒÔ£¬Èç¹ûÎÒÃÇÏëÔËÐÐÒ»¸öÀàÎļþ»òÒ»¶Î×Ö½ÚÂ룬½öÐèÒªJRE¾Í¹»ÁË¡£¶øJDK£¨Java¿ª·¢¹¤¾ß£©ÊÇJREµÄ³¬¼¯¡£Ëü°üº¬ÁËJREÌṩµÄËùÓж«Î÷£¬°üÀ¨´´½¨ÀàÎļþµÄ¹¤¾ßÈçJava±àÒëÆ÷¡¢µ÷ÊÔÆ÷ºÍÆäËûÐí¶à¿ª·¢Java³ÌÐòÏà¹ØµÄ¹¤¾ß¡£ËùÒÔ£¬µ±ÎÒÃÇÒª´´½¨ÀàÎļþ£¨±àÒëJavaÔ´Â룩ʱ£¬ÎÒÃǾÍÐèÒªJDK¡£ÏÂÃæÊÇÒ»ÕÅJava APIÎĵµµÄ½ØÍ¼¡£×¢Òâ×é³ÉJDK£¬JREºÍJava SE APIºËÐÄÀà¿âµÄ×é¼þ£»Í¨¹ýÕâÕŽØÍ¼Äã¿ÉÒÔÁ˽âJREºÍJDKÀïÃæ¶¼ÓÐÄÄЩÄÚÈÝ¡£

ͼ2: À´×ÔJava APIÎĵµ

JavaÌṩÁËJavaÐéÄâ»ú¹æ·¶À´ÈÃÎÒÃǶÔJVMµÄ¹¤×÷Ô­ÀíÓÐÒ»¸öÍêÕûµÄÈÏʶ¡£Äã¿ÉÒÔ´ÓÕâÀïµÃµ½¸ÅÄîÐÔ֪ʶ£¬²¢¿ª·¢Ò»¸ö×Ô¼ºµÄJVM£»µ«Õâ²¢²»ÊÇÒ»¸ö¼òµ¥µÄ¹¤×÷¡£ÏÖÔÚÊг¡ÉÏÒѾ­ÓкܶàJVMÁË£¬ÆäÖÐÓÐЩÊÇÃâ·ÑµÄ£¬»¹ÓÐһЩÐèÒª¹ºÂòÉÌÒµÐí¿ÉÖ¤²ÅÄÜʹÓá£

ÔÚJVMÉÏÖ´ÐÐJava³ÌÐò

ÿһ¸öÔÚJREÉÏÔËÐеÄJava³ÌÐò¶¼»á´´½¨Ò»¸öJVMʵÀý¡£±àÒëºóµÄJavaÀàÎļþºÍÆäËû±»ÒÀÀµµÄÀàÎļþ»á±»¼ÓÔØµ½ÔËÐл·¾³ÖС£ÕâÒ»²½ÓÉÀà¼ÓÔØÆ÷ЭÖúÍê³É¡£

ͼ3:Àà¼ÓÔØÄ£¿éºÍÆä¹¦ÄÜ

Àà¼ÓÔØÆ÷ͨ¹ýÈý²½Íê³ÉÀà¼ÓÔØ

Ê×ÏÈ£¬Àà¼ÓÔØÆ÷»áÒÔ×Ö½ÚÂëµÄÐÎʽ¼ÓÔØ³ÌÐòÀàÎļþºÍÓëJDK°ó¶¨µÄ±ê×¼JavaÀàÎļþ¡£±ê×¼ÀàÎļþ¹¹³ÉÁËJava APIºËÐÄÀà¿â¡£Òýµ¼³ÌÐòͨ¹ý¶¨Î»Í¨³£Î»ÓÚjre/libĿ¼ÏµĺËÐÄAPIÀà¿âÆô¶¯¡£

È»ºó£¬À©Õ¹»úÖÆ¶¨Î»À©Õ¹Àà¿â£¬ÀýÈçһЩΪ¿ª·¢»òÖ´ÐдúÂë¶ø±»Ìí¼Óµ½JavaÀïÐµģ¨¿ÉÑ¡£©°ü¡£À©Õ¹Ààͨ³£Î»ÓÚ jre/lib/extĿ¼Ï¡£ÓÐʱ£¬À©Õ¹Àà»á±»·Åµ½ÏµÍ³ÊôÐÔjava.ext.dirs ¶¨ÒåµÄÆäËûĿ¼ÏÂÃæ¡£³ÌÐò°üʹÓÃJAR»òZIPµÄÀ©Õ¹Ãû¡£

×îºó£¬Èç¹ûÒª¼ÓÔØµÄÀàûÓÐÔÚJavaµÄ±ê×¼Àà¿â»òÀ©Õ¹Àà¿âÖб»ÕÒµ½£¬¼ÓÔØÆ÷»áËÑË÷CLASSPATH»·¾³±äÁ¿Ï¶¨ÒåµÄÎļþ·¾¶£¬CLASSPATHÀïÃæ°üº¬ÁËÖî¶à´æ´¢ÀàÎļþµÄµØÖ·¡£ÏµÍ³ÊôÐÔjava.class.path¶ÔCLASSPATH»·¾³±äÁ¿×öÁËÓ³Éä¡£

ÏñJAR»òZIPÕâÑùµÄ¹éµµÎļþ¶¼Êǰüº¬ÁËһЩÆäËûÎļþĿ¼µÄ¶ÀÁ¢Îļþ£¬Í¨³£ÊÇѹËõÎļþ¸ñʽ¡£ÀýÈ磬³ÌÐòÖÐʹÓõıê×¼Àà¿â°üº¬Ôڹ鵵Îļþ rt.jarÖУ¬¸ÃÎļþ»áºÍJDK±»Ò»Í¬°²×°¡£

Ò»µ©Îļþ±»¶¨Î»²¢¼ÓÔØÖ®ºó£¬Àà¼ÓÔØÆ÷»áÖ´Ðв»Í¬µÄ¹¦ÄÜ£¬ÀýÈç¸ù¾ÝJVMµÄÔ¼Êø½øÐÐУÑé¡¢ÄÚ´æ·ÖÅ䣬»òÕßÔÚµ÷Óù¹ÔìÆ÷ÉèÖö¨ÒåµÄ±äÁ¿ÔªËØÖ®Ç°Ê¹ÓÃĬÈÏÖµ³õʼ»¯Àà±äÁ¿¡£

µ±¼ÓÔØ³ÌÐò½áÊøÖ®ºó£¬×Ö½ÚÂëÖ¸Áî±»´«µÝ¸øÖ´ÐÐÒýÇæ¡£È»ºóJVM½èÖúÓڰ󶨵½Ö¸¶¨Æ½Ì¨µÄÌØ¶¨JVMʵÏֵı¾µØ´úÂëºÍµ×²ã²Ù×÷ϵͳ½øÐн»»¥¡£Çë×¢Ò⣬²»Í¬Æ½Ì¨µÄʵÏÖ¿ÉÄÜÓÐÂÔ΢²»Í¬¡£

Êý¾Ý´æ´¢ÇøµÄ¶Ñ¿Õ¼äÓÃÓÚ´æ´¢¶¯Ì¬»òÁÙʱ·ÖÅäµÄÄÚ´æ¿Õ¼ä¡£ÀàºÍÊý×éÊÇÔÚÕâ¿éÇøÓòÀï´´½¨µÄ¡£µ±´´½¨¶ÔÏó´óС³¬³ö¶ÑÄÚ´æ¿Õ¼äʱ£¬À¬»øÊÕ¼¯Æ÷»á»ØÊÕÄÚ´æ¡£

JavaÕ»£¬ÓÖ½ÐÕ»Ö¡£¬ÓÃÓÚ´æ´¢¾Ö²¿±äÁ¿ºÍ²»Í¬½×¶Î·½·¨µ÷ÓõÄÁÙʱ½á¹û¡£Ã¿Ò»´Î·½·¨µ÷Óö¼»á´´½¨Ò»¸öÕ»Ö¡¡£

·½·¨Çø»ù±¾ÉÏÊÇJVMÏ̼߳äµÄ¹²Ïí´æ´¢Çø¡£

¼Ä´æÆ÷ÊÇÒ»¸öÄ£ÄâµÄµ×²ã»úÆ÷¼Ä´æÆ÷£¬Ö÷ÒªÓÃÓÚÖ´ÐÐ×Ö½ÚÂëÖ¸Áî¡£PC¼Ä´æÆ÷»ò³ÌÐò¼ÆÊýÆ÷ÊÇÓÃÓÚ±£´æµ±Ç°Ö¸ÁîÖ´ÐеØÖ·µÄÖ÷Òª¼Ä´æÆ÷¡£

JVM¹¦ÄܸÅÊö

JVMµÄ¹¦ÄÜ¿ÉÒÔ¹éÄÉΪ£º

¼ÓÔØ£ºÍ¨¹ýÀà¼ÓÔØÆ÷¼ÓÔØÀàÎļþµÄ¹ý³Ì¡£

Á´½Ó£ºÁ´½ÓÀàÎļþ£¬Ìá½»¸øJVMÔÚÔËÐÐʱִÐС£

³õʼ»¯£º·ÖÅäÄÚ´æºÍµ÷ÓÃÀà³õʼ»¯·½·¨ÉèÖñäÁ¿Öµ¡£

×ܽá

ʹÓÃÐéÄâ»úÖ´ÐгÌÐòµÄ×î´óºÃ´¦ÊÇËüÊÇÆ½Ì¨¶ÀÁ¢µÄ¡£ºÍC/C++ÕâÖÖ¸ßЧµÄÓïÑÔÏà±È£¬ÕâÖÖÀàÐͱà³ÌÓïÑÔµÄÉú²úÁ¦¿ÉÒÔÃÖ²¹ÆäÐÔÄÜÉϵÄÈõµã¡£±¾ÎĽö½öÊǶÔJVMµÄÒ»µãdz¼û£¬µ«Ò²ÐíÒѾ­×ãÒÔ°ïÖúÀí½âJVMÊÇÈçºÎʵ¼Ê¹¤×÷µÄ¡£

   
3132 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

Java΢·þÎñÐÂÉú´úÖ®Nacos
ÉîÈëÀí½âJavaÖеÄÈÝÆ÷
JavaÈÝÆ÷Ïê½â
Java´úÂëÖÊÁ¿¼ì²é¹¤¾ß¼°Ê¹Óð¸Àý
Ïà¹ØÎĵµ

JavaÐÔÄÜÓÅ»¯
Spring¿ò¼Ü
SSM¿ò¼Ü¼òµ¥¼òÉÜ
´ÓÁ㿪ʼѧjava±à³Ì¾­µä
Ïà¹Ø¿Î³Ì

¸ßÐÔÄÜJava±à³ÌÓëϵͳÐÔÄÜÓÅ»¯
JavaEE¼Ü¹¹¡¢ Éè¼ÆÄ£Ê½¼°ÐÔÄܵ÷ÓÅ
Java±à³Ì»ù´¡µ½Ó¦Óÿª·¢
JAVAÐéÄâ»úÔ­ÀíÆÊÎö