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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Ò»µãÒ»µÎ̽¾¿ JVM Ö®ÄÚ´æ½á¹¹
 
  2872  次浏览      27
 2018-1-5 
 
±à¼­ÍƼö:
±¾ÎÄÀ´×ÔÓÚStormMa£¬Ö÷Òª½²½âÁËJVMµÄ×é³ÉºÍÔËÐÐÔ­Àí£¬JVMµÄͳһÊý¾Ý¸ñʽ¹æ·¶¡¢×Ö½ÚÂëÎļþ½á¹¹£¬JVM¹ØÓÚÄÚ´æµÄ¹ÜÀí¡£

ǰÑÔ

ÎÒÒ»Ö±³¢ÊÔ×ÅÓò»Ò»ÑùµÄÎÄ×ÖÀ´Ð´²©¿Í£¡Ô­ÒòºÜ¼òµ¥£¬Äã½²µÄ֪ʶÊéÉ϶¼ÓУ¬ÄÇôÿ¸öÈËΪʲô²»Ñ¡Ôñ¿´Êé¶øÑ¡Ôñ¿´ÄãµÄ²©ÎÄÀ´Ñ§Ï°ÄØ£¿ÒòΪÊéÉϵÄÄÚÈݶ¼ÊÇ´óÆ¬´óƬÃèÊöÐÔµÄÎÄ×Ö£¬¶ÔÓÚjvmÕâ¿éµÄ֪ʶ£¬ÓÖÊÇÒì³£¿ÝÔµ«ÓÖ²»Äܲ»Ñ§Ï°µÄÓ²¹ÇÍ·£¡ÕâÇ¡ºÃÒ²¾ÍÄÜ˵Ã÷Head FirstϵÁеÄÊ鼮Ϊʲô±È½Ï»ðµÄÔ­Òò£¬Ã¿¸öÈ˽ÓÊÕͼÐÎ֪ʶµÄËÙ¶ÈÍùÍù±ÈÎÄ×ÖÐԵĶ«Î÷Òª¿ìºÜ¶à¡£½ñºóÎÒÒ²»á³¢ÊÔÓÃ×Ô¼ºµÄÌØÉ«À´Ð´²©¿Í£¬¾¡Á¿ÄÜÒýÆð¶ÁÕßµÄÐËȤ£¬ÄÜ´ÓÖÐѧµ½¶«Î÷£¬ÎÒ¾ÍÖª×ãÁË£¡

½ñÌìµÄÒ»µãÒ»µÎ̽¾¿JVMϵÁУ¬´òË㸴ϰһÏÂjvmÄÚ´æ½á¹¹£¡ÖÁÓÚѧϰÕâ¿é֪ʶµÄºÃ´¦£¿Ò»£¬´ÓÃæÊԵĽǶÈÀ´¿´£¬ÄãÁ˽âjvm£¬²¢ÇÒjava»ù´¡Ôúʵ£¬Äã²Å¸üÓоºÕùÁ¦(ÒòΪÎÒ±¾È˱¾¿Æ»¹Ã»±ÏÒµ£¬ËùÒÔ¿¼ÂÇÎÊÌâ¾­³£´ÓÃæÊÔÕߵĽǶÈÀ´¿¼ÂÇ)¡£Æä¶þ£¬Ìá¸ßÄã¶ÔjavaµÄÀí½â£¬ÖªµÀÄã´´½¨µÄÿһ¸ö¶ÔÏó£¬Ã¿Ò»¸ö±äÁ¿£¬¶¼ÔÚʲôµØ·½£¬Èç¹û²»ÖªµÀÕâЩϡÀïºýÍ¿µÃд´úÂ룬×Ü»áÓÐÒ»Ìì»á¡±·­³µ¡±µÄ£¡ºÃÁË£¬·Ï»°²»¶à˵ÁË£¬ÎÒÃÇ¿ªÊ¼ÕýÌâ°É£¡

¿ªÊ¼Ö®Ç°

JavaÓëC++Ö®¼äÓÐÒ»¶ÂÓÉÄڴ涯̬·ÖÅäºÍÀ¬»øÊÕ¼¯¼¼ÊõËùΧ³ÉµÄ¡±Ç½¡±, ǽÍâµÄÈËÏë½øÈ¥£¬Ç½ÄÚµÄÈËÏë³öÀ´¡£

»òÐíÄã¾­³£¿´µ½StackOverFlowError£¬ OutOfMemoryErrorÎÞ´ÓÏÂÊÖ£¬ÒòΪÄãѹ¸ù²»ÖªµÀ£¬¾¿¾¹ÊÇʲô¶«Î÷Ôì³ÉÄڴ汬ÁË£¬µ±È»£¬ÄãÒ²ÎÞ·¨½â¾ö£¡

¾Ù¸ö¼òµ¥µÄÀý×Ó

public class test {
private int f() {
f();
}
public static void main(String[] args) {
f();
}
}

Õâ¸ö¼òµ¥µÄµÝ¹é£¬²»¶Ô£¬Ëü²»ËãÊǵݹ飬ÒòΪûÓÐÖÕÖ¹Ìõ¼þ£¬µ«ÊÇÄãÖªµÀËü×îÖջᱨʲô´íÎó£¬ÖªµÀΪʲô»á±¨Õâ¸ö´íÎóÂ𣿾¿¾¹ÊÇÄÇ¿éÄÚ´æ·¢ÉúÁË´íÎó?

Õâ¸öÎÊÌ⣬ÎÒÃÇÁôÔÚºóÃæ»Ø´ð£¬ÊÇÁôÔÚºóÃæÄã×Ô¼º½â´ð£¬¿´ÍêÕâÆª²©ÎÄ£¬²»ÓÃÎÒ˵£¬ÕâЩÎÊÌâÄã¶¼»áºÜÇå³þ£¡ÏàÐÅÎÒ£¡

Ä¿±ê

Äã¿ÉÄÜ»áºÃÆæ£¬Äã¿´ÍêÕâÆªÎÄÕÂÄãÄÜѧµ½Ê²Ã´?

Çå³þÄãµÄ¶ÔÏó»á±»·ÖÅäÔÚÄÄÀï(²»¾ø¶Ô)

Àí½âÄÄÐ©ÇøÓò¶ÔÏß³ÌÀ´ËµÊÇ˽ÓÐÇø£¬ÄÄÐ©ÇøÓòÊÇÏ̹߳²ÏíÇøÓò

ÖªµÀ·½·¨µ÷Ó÷¢ÉúÁËʲô£¿

¡­

µÈµÈµÈ£¬Äã¿ÉÄÜ»¹»á½âÊÍÄãÒÔǰÓöµ½Ò»Ð©·ËÒÄËù˼µÄÎÊÌ⣡×ÜÖ®£¬ÄãÈç¹û֮ǰûÁ˽â¹ýÕâЩ֪ʶ£¬ÄÇôÕâЩ¶«Î÷¶ÔÄãÀ´Ëµ£¬¾ÍÊdzɳ¤£¡

ǽÄÚµÄÊÀ½ç

Äã¿ÉÄÜºÜºÃÆæ£¬Ç½ÄÚ¾¿¾¹ÊÇʲôÑù£¿½ÓÏÂÀ´¸ú×ÅÎÒһ̽¾¿¾¹

ÉÏͼ¾ÍÊÇjvm±È½ÏÏêϸµÄÄÚ´æ»®·Ö£¬ÏÂÃæÎÒÃÇÀ´°´Ïß³Ì˽Óй²ÏíÀ´»®·ÖjvmÄÚ´æÇø

ÏÂÃæÎÒÃÇÀ´×ÅÖØ½éÉÜÒ»ÏÂÕ⼸¿éÄÚ´æÇøÓò

³ÌÐò¼ÆÊýÆ÷(Program Counter Register)

ʲôÊdzÌÐò¼ÆÊýÆ÷ÄØ£¬Ñ§¹ý»ã±àµÄ¶¼ÖªµÀ£¬cs:ip×é³ÉµÄÎïÀíµØÖ·ÊÇÏÂÒ»ÌõÒªÖ´ÐеÄÖ¸ÁîµÄµØÖ·£¬À´°É£¡¿´Í¼

ÎÒÃÇ¿ÉÒÔºÜÇå³þµÄ¿´µ½£¬µ±Ç°cs:ipÖ¸ÏòµÄÄÚ´æµØÖ·Ç¡ºÃ¾ÍÊÇÎÒÃÇÒªÖ´ÐеÄÏÂÒ»ÌõÖ¸ÁîµÄλÖã¬Ç°ÃæÎÒÃÇͼÖÐ(°´Ïß³Ì˽Óй²Ïí»®·ÖjvmÄÚ´æµÄͼ)ÓÖ˵ÁË£¬³ÌÐò¼ÆÊýÆ÷ÊÇÏß³Ì˽Óеģ¬ÔÙÁªÏëÒ»ÏÂÎÒ¾Ùcs:ipµÄÀý×Ó£¬ÎÒÃÇ¿ÉÒÔºÜ×ÔÈ»µÄÏëµ½£¬³ÌÐò¼ÆÊýÆ÷Æäʵ¾ÍÊǼǼÏ̵߳±Ç°Ö´Ðе½ÁËÄÄÒ»ÌõÖ¸ÁÒòΪʲôҪ¼Ç¼Õâ¸öֵĨ£¿ÒòΪ£¬Èç¹ûÎÒÃÇÓкܶà¸öỊ̈߳¬Ïß³ÌÖ´ÐÐ˳ÐòÓÖÊDz»¿ÉÔ¤Áϵ쬼ÙÈçijһʱ¿ÌÎÒÃÇÔÚÖ´ÐÐÏß³ÌAÀïÃæµÄÖ¸ÁȻºóÏß³ÌBÓÖ»ñµÃÁËcpuµÄ×ÊÔ´£¬È¥Ö´ÐÐÈ¥Ïß³ÌBµÄÖ¸Á¼ÙÈçÔÙ¹ýÁËÒ»¶Îʱ¼äÖ®ºó£¬AÓÖ»ñµÃÁËcpuµÄ×ÊÔ´£¬Ïë³Ô»ØÍ·²Ý£¬´Ëʱ»Øµ½Ïß³ÌAÖ´ÐУ¬Ëü²»ÖªµÀÒªÖ´ÐÐÏß³ÌAµÄÄÄÌõÖ¸ÁÕâÊÇûÓгÌÐò¼ÆÊýÆ÷ËùÐγɵÄÞÏÞξÖÃæ£¬µ«ÊÇÓÐÁËÏß³Ì˽ÓеijÌÐò¼ÆÊýÆ÷£¬Õâ¸öÎÊÌâ¾Í²»´æÔÚÁË£¬Õâ¾ÍÊdzÌÐò¼ÆÊýÆ÷³öÏÖµÄÔ­Òò£¬ÒÔ¼°ËüµÄÓô¦£¬ÎÒÏëÄã¿´ÍêÕâ¶ÎÎÄ×Ö£¬Ó¦¸ÃÒѾ­¶Ô³ÌÐò¼ÆÊýÆ÷Õâ¸ö¸ÅÄîÍêÈ«Àí½âÁË£¡

ÁíÍ⣬ÎÒÐèҪ˵Ã÷µÄÒ»µãÊÇ£¬³ÌÐò¼ÆÊýÆ÷ÊÇJavaÐéÄâ»ú¹æ·¶ÖÐΨһһ¸öûÓй涨ÈκÎÄÚ´æ´íÎóµÄÇøÓò£¡

ÐéÄâ»úÕ»(Vm Stack)

Õâ¿éÇøÓòÊǸÉɶµÄ£¿ÎªÉ¶Ò²ÊÇÏß³Ì˽Óеģ¿

ÐéÄâ»úÕ»ÃèÊöµÄÊÇJava·½·¨Ö´ÐеÄÄÚ´æÄ£ÐÍ

ÎÒÃÇÀ´½â¶ÁÕâ¾ä»°£¬ÎªÊ²Ã´ËµVm StackÊÇÃèÊöJava·½·¨Ö´ÐеÄÄÚ´æÄ£ÐÍÄØ£¿Æäʵ£º

ÿ¸ö·½·¨Ö´ÐеÄʱºò¶¼»á´´½¨Ò»¸öÕ»Ö¡(Stack Frame)µÄ¶«Î÷£¬Ñ§¹ýc/c++µÄÓ¦¸Ã¶¼¶ÔÕâ¸ö¸ÅÄîÊìϤ¡£Õ»Ö¡ÓÃÓÚ´æ´¢¾Ö²¿±äÁ¿±í¡¢²Ù×÷ÊýÕ»¡¢¶¯Ì¬Á´½Ó¡¢·½·¨³ö¿ÚÐÅÏ¢µÈ¡£Ã¿¸ö·½·¨´Óµ÷ÓÿªÊ¼µ½½áÊøµÄ¹ý³Ì£¬¶¼¶ÔÓ¦ÕâVm StackÖеÄÈëÕ»³öÕ»µÄ¹ý³Ì£¡ÕâÒ²¾ÍÄܻشð¿ªÍ·ÎÒÃÇ¿´µ½µÄÄǸöÎÊÌâÁË£¬ºÜ¼òµ¥´íÎóÔÚµ¥Ïß³ÌÇé¿öÏ¿϶¨ÊÇStackOverFlowError£¬¶àÏß³ÌÏÂOutOfMemoryError(ÉÏͼÒѾ­Ð´µÃºÜÇå³þÁË)

±ÈÈç

public void test() {
String name = "stormma";
int age = 21;
}

ÉÏÃæµÄÀý×ÓµÄage±äÁ¿ºÍnameÒýÓö¼ÊÇ´æ´¢ÔÚÐéÄâ»úÕ»µÄÕ»Ö¡ÀïÃæµÄ(ÒòΪÎÒÃÇÇ°ÃæËµ¹ýÁË£¬Ò»¸ö·½·¨´Ó¿ªÊ¼µ÷Óõ½½áÊøµ÷ÓõĹý³Ì¶¼¶ÔÓ¦×ÅÒ»¸öVm Stack³öÕ»ÈëÕ»µÄ¹ý³Ì)¡£

ÎÒÃÇÇ°ÃæËµÁË£¬Õâ¿éÇøÓò´æ´¢Á˾ֲ¿±äÁ¿±í£¬²Ù×÷ÊýÕ»£¬¶¯Ì¬Á´½Ó£¬»¹Óз½·¨³ö¿ÚÐÅÏ¢µÈ£¬ÎÒÏëÄãÓ¦¸Ã±È½ÏºÃÆæÕ⼸¸ö¸ÅÄî¡£

¾Ö²¿±äÁ¿±í: ¾Ö²¿±äÁ¿±íÊÇÒ»×é±äÁ¿Öµ´æ´¢¿Õ¼ä£¬ÓÃÓÚ´æ·Å·½·¨²ÎÊýºÍ·½·¨ÄÚ²¿¶¨ÒåµÄ¾Ö²¿±äÁ¿£¬ÆäÖдæ·ÅµÄÊý¾ÝµÄÀàÐÍÊDZàÒëÆÚ¿ÉÖªµÄ¸÷ÖÖ»ù±¾Êý¾ÝÀàÐÍ¡¢¶ÔÏóÒýÓÃ(reference)ºÍ(returnAddress)ÀàÐÍ£¨ËüÖ¸ÏòÁËÒ»Ìõ×Ö½ÚÂëÖ¸ÁîµÄµØÖ·£©¡£¾Ö²¿±äÁ¿±íËùÐèµÄÄÚ´æ¿Õ¼äÔÚ±àÒëÆÚ¼äÍê³É¼ÆËãµÄ£¬¼´ÔÚJava³ÌÐò±»±àÒë³ÉClassÎļþʱ£¬¾ÍÈ·¶¨ÁËËùÐè·ÖÅäµÄ×î´ó¾Ö²¿±äÁ¿±íµÄÈÝÁ¿¡£µ±½øÈëÒ»¸ö·½·¨Ê±£¬Õâ¸ö·½·¨ÐèÒªÔÚÕ»ÖзÖÅä¶à´óµÄ¾Ö²¿±äÁ¿¿Õ¼äÊÇÍêȫȷ¶¨µÄ£¬ÔÚ·½·¨ÔËÐÐÆÚ¼ä²»»á¸Ä±ä¾Ö²¿±äÁ¿±íµÄ´óС¡£

²Ù×÷ÊýÕ»: ²Ù×÷ÊýÕ»ÓÖ³£±»³ÆÎª²Ù×÷Õ»£¬²Ù×÷ÊýÕ»µÄ×î´óÉî¶ÈÒ²ÊÇÔÚ±àÒëµÄʱºò¾ÍÈ·¶¨ÁË¡£32λÊý¾ÝÀàÐÍËùÕ¼µÄÕ»ÈÝÁ¿Îª1, 64λÊý¾ÝÀàÐÍËùÕ¼µÄÕ»ÈÝÁ¿Îª2¡£µ±Ò»¸ö·½·¨¿ªÊ¼Ö´ÐÐʱ£¬ËüµÄ²Ù×÷Õ»Êǿյģ¬ÔÚ·½·¨µÄÖ´Ðйý³ÌÖУ¬»áÓи÷ÖÖ×Ö½ÚÂëÖ¸Á±ÈÈ磺¼Ó²Ù×÷¡¢¸³ÖµÔªËãµÈ£©Ïò²Ù×÷Õ»ÖÐдÈëºÍÌáÈ¡ÄÚÈÝ£¬Ò²¾ÍÊÇÈëÕ»ºÍ³öÕ»²Ù×÷¡£JavaÐéÄâ»úµÄ½âÊÍÖ´ÐÐÒýÇæ³ÆÎª¡°»ùÓÚÕ»µÄÖ´ÐÐÒýÇæ¡±£¬ÆäÖÐËùÖ¸µÄ¡°Õ»¡±¾ÍÊDzÙ×÷ÊýÕ»¡£Òò´ËÎÒÃÇÒ²³ÆJavaÐéÄâ»úÊÇ»ùÓÚÕ»µÄ£¬Õâµã²»Í¬ÓÚAndroidÐéÄâ»ú£¬AndroidÐéÄâ»úÊÇ»ùÓڼĴæÆ÷µÄ¡£»ùÓÚÕ»µÄÖ¸Á×îÖ÷ÒªµÄÓŵãÊÇ¿ÉÒÆÖ²ÐÔÇ¿£¬Ö÷ÒªµÄȱµãÊÇÖ´ÐÐËÙ¶ÈÏà¶Ô»áÂýЩ£»¶øÓÉÓڼĴæÆ÷ÓÉÓ²¼þÖ±½ÓÌṩ£¬ËùÒÔ»ùÓڼĴæÆ÷Ö¸Á×îÖ÷ÒªµÄÓŵãÊÇÖ´ÐÐËٶȿ죬Ö÷ÒªµÄȱµãÊÇ¿ÉÒÆÖ²ÐÔ²î

¶¯Ì¬Á´½Ó: ÿ¸öÕ»Ö¡¶¼°üº¬Ò»¸öÖ¸ÏòÔËÐÐʱ³£Á¿³Ø£¨ÔÚ·½·¨ÇøÖУ¬ºóÃæ½éÉÜ£©ÖиÃÕ»Ö¡ËùÊô·½·¨µÄÒýÓ㬳ÖÓÐÕâ¸öÒýÓÃÊÇΪÁËÖ§³Ö·½·¨µ÷Óùý³ÌÖеĶ¯Ì¬Á¬½Ó¡£ClassÎļþµÄ³£Á¿³ØÖдæÔÚÓдóÁ¿µÄ·ûºÅÒýÓã¬×Ö½ÚÂëÖеķ½·¨µ÷ÓÃÖ¸Áî¾ÍÒÔ³£Á¿³ØÖÐÖ¸Ïò·½·¨µÄ·ûºÅÒýÓÃΪ²ÎÊý¡£ÕâЩ·ûºÅÒýÓã¬Ò»²¿·Ö»áÔÚÀà¼ÓÔØ½×¶Î»òµÚÒ»´ÎʹÓõÄʱºòת»¯ÎªÖ±½ÓÒýÓã¨Èç final¡¢static ÓòµÈ£©£¬³ÆÎª¾²Ì¬½âÎö£¬ÁíÒ»²¿·Ö½«ÔÚÿһ´ÎµÄÔËÐÐÆÚ¼äת»¯ÎªÖ±½ÓÒýÓã¬Õⲿ·Ö³ÆÎª¶¯Ì¬Á¬½Ó¡£

·½·¨·µ»ØµØÖ·: µ±Ò»¸ö·½·¨±»Ö´Ðкó£¬ÓÐÁ½ÖÖ·½Ê½Í˳ö¸Ã·½·¨£ºÖ´ÐÐÒýÇæÓöµ½ÁËÈÎÒâÒ»¸ö·½·¨·µ»ØµÄ×Ö½ÚÂëÖ¸Áî»òÓöµ½ÁËÒì³££¬²¢ÇÒ¸ÃÒ쳣ûÓÐÔÚ·½·¨ÌåÄڵõ½´¦Àí¡£ÎÞÂÛ²ÉÓúÎÖÖÍ˳ö·½Ê½£¬ÔÚ·½·¨Í˳öÖ®ºó£¬¶¼ÐèÒª·µ»Øµ½·½·¨±»µ÷ÓõÄλÖ㬳ÌÐò²ÅÄܼÌÐøÖ´ÐС£·½·¨·µ»ØÊ±¿ÉÄÜÐèÒªÔÚÕ»Ö¡Öб£´æÒ»Ð©ÐÅÏ¢£¬ÓÃÀ´°ïÖú»Ö¸´ËüµÄÉϲ㷽·¨µÄÖ´ÐÐ״̬¡£Ò»°ãÀ´Ëµ£¬·½·¨Õý³£Í˳öʱ£¬µ÷ÓÃÕßµÄPC¼ÆÊýÆ÷µÄÖµ¾Í¿ÉÒÔ×÷Ϊ·µ»ØµØÖ·£¬Õ»Ö¡ÖкܿÉÄܱ£´æÁËÕâ¸ö¼ÆÊýÆ÷Öµ£¬¶ø·½·¨Òì³£Í˳öʱ£¬·µ»ØµØÖ·ÊÇҪͨ¹ýÒì³£´¦ÀíÆ÷À´È·¶¨µÄ£¬Õ»Ö¡ÖÐÒ»°ã²»»á±£´æÕⲿ·ÖÐÅÏ¢¡£·½·¨Í˳öµÄ¹ý³Ìʵ¼ÊÉϵÈͬÓڰѵ±Ç°Õ»Ö¡³öÕ¾£¬Òò´ËÍ˳öʱ¿ÉÄÜÖ´ÐеIJÙ×÷ÓУº»Ö¸´Éϲ㷽·¨µÄ¾Ö²¿±äÁ¿±íºÍ²Ù×÷ÊýÕ»£¬Èç¹ûÓзµ»ØÖµ£¬Ôò°ÑËüѹÈëµ÷ÓÃÕßÕ»Ö¡µÄ²Ù×÷ÊýÕ»ÖУ¬µ÷ÕûPC¼ÆÊýÆ÷µÄÖµÒÔÖ¸Ïò·½·¨µ÷ÓÃÖ¸ÁîºóÃæµÄÒ»ÌõÖ¸Áî¡£

ÎÒÏë¹ØÓÚÕâ¸öÇøÓòµÄ¶«Î÷ÎÒÒѾ­½éÉÜÍêÁË£¬ÎÒÏëÄãÒ²Ó¦¸Ã¶®ÁË¡£

ÏÂÃæÎÒÃÇÀ´ÏÂÒ»¸öÇøÓò: ¶Ñ(heap)

¶Ñ(Heap)

¶ÑÇø£¬ÊÇÒ»¿éºÜÓÐÒâ˼µÄÇøÓò£¬ÎªÉ¶ÓÐÒâ˼£¬ÒòΪÕâ¿éÇøÓòÊÇËùÓÐÏ̹߳²ÏíµÄ£¬Ò²ÊÇÎÒÃǴ󲿷ֵĶÔÏóµÄ¾Û¾ÓµØ(Ϊɶ˵ÊǴ󲿷ÖÄØ£¿Õâ¸ö¸ÅÄîÎÒÃÇÖ®ºóµÄÎÄÕÂ»á½øÐÐÏêϸµÄ½²½â£¬Èç¹ûÄãÌØ±ðºÃÆæ£¬¿ÉÒÔ¿´Ò»ÏÂÎÒ֮ǰµÄÎÄÕÂ, JavaÌÓÒÝ·ÖÎö)£¡Ò²ÊÇjvm¹ÜÀíµÄ×î´óÒ»¿éÄÚ´æ(¶ÔÁË£¬ÉÏÃæµÄͼµÄ´óС²»´ú±íÄÚ´æÕ¼±È£¬Ö»ÊÇΪÁË¿´×ÅÊæ·þ¶øÒÑ)!Ò²ÊÇgc¿ªÕ¹¹¤×÷µÄÖ÷񻂿Óò¡£

¶ÑÄÚ´æÖзÖΪһ¿éÇøÓò£¬ÓÃÓÚ´æ´¢ÀàÐÅÏ¢£¬¾²Ì¬±äÁ¿µÈµÈÊý¾Ý£¬ÕâÒ»¿éÇøÓò֮ǰ½Ð×ö·½·¨ÇøºóÃæÓÖ½ÐÓÀ¾Ã´ø£¬Ö®ºó¸ÄÃû½Ð×öMeta-Area/Meta Space Area£¬ÔªÊý¾Ý¿Õ¼ä£¬Ãû×Ö²»ÖØÒª£¬ÎÒÃÇÒªÇå³þÕâ¿éÇøÓòÊÇʲô×÷ÓþÍÐÐÁË£¡

Meta-Area

Õâ¿éÇøÓòÒ²ÊÇÏ̹߳²ÏíµÄÇøÓò£¬ËüÖ÷Òª´æ´¢jvm¼ÓÔØÀàµÄÀàÐÅÏ¢£¬Àà±äÁ¿£¬³£Á¿(Õâ¸öÔÚmeta-areaµÄ³£Á¿Çø)£¬¼´Ê±±àÒëÆ÷±àÒëºóµÄ´úÂëµÈÊý¾Ý¡£

ÔËÐÐʱ³£Á¿Çø

Õâ¸öÇøÓòÊÇMeta-AreaµÄÒ»²¿·Ö£¬ÓÃÓÚ´æ·Å±àÒëÆ÷Éú³ÉµÄ¸÷ÖÖ×ÖÃæÁ¿ºÍ·ûºÅÒýÓã¬Õⲿ·ÖÄÚÈݽ«ÔÚÀà¼ÓÔØºó´æ·Åµ½·½·¨ÇøµÄÔËÐÐʱ³£Á¿³ØÖС£ÕâÔÚÎÒÃǵÄÉÏһƪ²©¿ÍÓÐËùÉæ¼°¡£

¿ÝÔï¸ÅÄîÐԵĶ«Î÷¿´ÍêÖ®ºó£¬ÎÒÃÇÀ´¿´Ò»¸öÀý×Ó£¬À´¼ÓÉîÒ»ÏÂÕâ¿éµÄÓ¡Ïó£º

public void test() {
Object obj = new Object();
}

¶ÔÓÚÕâ¶Î´úÂë»áÉæ¼°Vm Stack¡¢Java Heap¡¢Meta-AreaÈý¸ö×îÖØÒªµÄÄÚ´æÇøÓò¡£

½áºÏÎÒÃÇÇ°ÃæµÄÀý×Ó£¬ÒòΪtest()·½·¨Éæ¼°µ½Vm StackÇø£¬ÎÒÏëÄãÓ¦¸ÃÃ÷°×£¬obj»á´æ·ÅÔÚ¾Ö²¿±äÁ¿±íÖУ¬new Object()£¬ÎÒÃÇÇ°ÃæËµ¹ýÎÒÃǴ󲿷ֵĶÔÏó¶¼»á´æ´¢ÔÚJava HeapÕâ¸öÇøÓò£¬ËùÒÔ£¬Java Heap´æ´¢ÁËÕâ¸öʵÀý¶ÔÏó£¡ÄÇôÄã»áºÜºÃÆæ£¬Meta-AreaΪɶ»áÉæ¼°µ½ÄØ£¿

ÎÒÃÇÖªµÀMeta-Area´æ´¢ÁËÀàµÄÐÅÏ¢£¬Àà±äÁ¿³£Á¿µÈµÈ¶«Î÷£¡ÒòΪÎÒÃÇʵÀý»¯Object¶ÔÓ¦µÄʱºò£¬ÒªÓõ½ObjectÕâ¸öÀàµÄÐÅÏ¢£¬ËùÒÔËü»á·ÃÎÊMeta-AreaµÄObject.classÕâ¸öClass¶ÔÏóÀ´»ñµÃһЩʵÀý»¯¶ÔÏóÐèÒªµÄ¶«Î÷¡£

¶ÔÁË£¬×÷Ϊ²¹³ä£¬ÎÒÏëÄ㻹ÐèÒªÖªµÀ, objÒýÓÃÔõôÄãÄÜ·ÃÎʵ½Java HeapÇøµÄÄǸöʵÀý»¯¶ÔÏó

ÓÐÁ½ÖÖ·½Ê½£¬Ò»ÖÖʹÓùý¾ä±úÖ¸Õë(ѧ¹ýc/c++¶ÔÕâЩ¸ÅÄîÓ¦¸Ã»áºÜÊìϤ)

»¹ÓÐÒ»ÖÖ¾ÍÊÇͨ¹ýÖ¸ÕëÖ±½Ó·ÃÎÊ

ÉÏͼÀ´×ÔÉîÈëÀí½âJVMÒ»Êé

±¾µØ·½·¨Õ»(Native Method Stack)

Õâ¿éÇøÓòÏà¶ÔÀ´Ëµ£¬Ã»ÓÐÇ°Ãæ¼¸¸ö¸ÅÄîÖØÒª¡£

¸ÃÇøÓòÓëÐéÄâ»úÕ»Ëù·¢»ÓµÄ×÷Ó÷dz£ÏàËÆ£¬Ö»ÊÇÐéÄâ»úջΪÐéÄâ»úÖ´ÐÐJava·½·¨·þÎñ£¬¶ø±¾µØ·½·¨Õ»ÔòΪʹÓõ½µÄ±¾µØ²Ù×÷ϵͳ£¨Native£©·½·¨·þÎñ¡£

±ÈÈçJavaµ÷ÓÃc/c++/»ã±à¾ÍÓõ½Õâ¿éÇøÓò

½áβ

ÎÒÏëÄã¿´ÍêÕâÆª²©ÎÄ£¬Ó¦¸Ã´ïµ½ÁËÎÒÃÇÎÄÕ¿ªÊ¼Ö®Ç°µÄÄ¿±ê£¡ÕâÆªÎÄÕ½éÉܵıȽÏdzÏÔ£¬±¾×ÅÓÃÀý×ÓÀ´½âÊÍ˵Ã÷ÄÚ´æÇøÓòµÄ×÷Óã¬ÕâÑùÎÒÏëÄã»á¸üÈÝÒ×½ÓÊÕ£¬×Ü±È´óÆ¬µÄÎÄ×ÖÃèÊöÈÃÄã¸üÓÐÐËȤ£¡

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

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

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

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