JVMÃâ·ÑÏÂÔØ£¬JVMÊÇJava Virtual MachineµÄ¼ò³Æ£¬ËüÊÇÒ»¸ö±àÔì³öÈ¥µÄ¼ÆËã»ú£¬ÊÇÀûÓÃÔÚ¾ßÌåµÄ¼ÆËã»úÉÏÄ£Äâ·ÂÕæ¸÷ÖÖ¸÷Ñù¼ÆËã»ú×÷Ó÷ÂÕæÄ£ÄâÀ´Íê³ÉµÄ¡£JVMÓÐ×ÔÉí½¡È«µÄÓ²¼þÅäÖù¹¼Ü£¬ÈçCPU¡¢¾Ö²¿±äÁ¿¡¢´æ´¢Æ÷µÈ£¬»¹¾ß±¸Ïà¶ÔµÄ¼ÆËã»úÖ¸Áî¡£JVMÆÁ±ÎµôÓëʵ¼ÊµçÄÔ²Ù×÷ϵͳƽ̨ÓйصÄÐÅÏ¢ÄÚÈÝ£¬´ÙʹJava³ÌÐòÖ»Ðèת»¯³ÉÔÚJavavmÐéÄâ»úÉÏÔËÐеÄÄ¿µÄ±àÂ룬¾Í¿ÉÒÔÔÚ¶àÖÖ¶àÑùƽ̨Éϲ»ÓøĶ¯µØÔËÐС£
¡¾ Ïê½â¡¿
Java Virtual Machine ͨ³ÆJVM£¬ÊÇÔËÐÐÈ«²¿Java³ÌÐòµÄ³éÏóÐÔ¼ÆËã»ú£¬ÊÇJavaÓïÑÔµÄÔËÐÐ×ÔÈ»»·¾³£¬ËüÊÇJava ¼«¾ßÓÕ»óÁ¦µÄÌصãÖ®Ò»¡£
JVMÒ»ÖÖÓÃÒÔ¼ÆËã»ú»úÆ÷É豸µÄ±ê×¼£¬¿ÉÒÔÓò»Ò»ÑùµÄ·½·¨£¨ÊÖ»úÈí¼þ»òÓ²¼þ£©½øÐÐÍê³É¡£±àÒë³ÌÐòvmÐéÄâ»úµÄÖ¸ÁîϵͳÓë±àÒë³ÌÐò΢¿ØÖÆÆ÷µÄÖ¸Áîϵͳʮ·ÖÏà½ü¡£JavavmÐéÄâ»ú£¨JVM£©°üº¬Ò»Ì××Ö½ÚÂëÖ¸Áîϵͳ¡¢Ò»×é´æ´¢Æ÷¡¢Ò»¸öÕ»¡¢Ò»¸öÀ¬»ø·ÖÀà»ØÊնѺÍÒ»¸ö´¢´æ·½Ê½Óò¡£
JavavmÐéÄâ»ú£¨JVM£©ÊÇ¿ÉÔËÐÐJava±àÂëµÄ»ÃÏë¼ÆËã»ú¡£Ö»ÐèÒÀ¾ÝJVM¹æ¸ñÐͺÅÐðÊö½«±àÒëÆ÷ÒÆÖ³µ½Ö¸¶¨µÄ¼ÆËã»úÉÏ£¬¾ÍÄÜÈ·±£Í¨¹ý±àÒë³ÌÐòµÄÒ»ÇÐJava±àÂë¿ÉÒÔÔÚ¸ÃϵͳÈí¼þÉÏÔËÐС£
JavavmÐéÄâ»ú£¨JVM£©ÊÇÒ»¸öÔ¤ÁÏÖеÄÉ豸£¬ÔÚ¾ßÌåµÄ¼ÆËã»úÉϸù¾ÝµçÄÔÈí¼þ·ÂÕæÄ£ÄâÀ´Íê³É¡£JavavmÐéÄâ»úÓÐ×ÔÉíÏëÏñÖеÄÓ²¼þÅäÖã¬ÈçCPU¡¢¾Ö²¿±äÁ¿¡¢´æ´¢Æ÷µÈ£¬»¹¾ß±¸Ïà¶ÔµÄ¼ÆËã»úÖ¸Áî¡£
JavavmÐéÄâ»ú£¨JVM£©±ê×¼½ç¶¨ÁËÒ»¸ö³éÏ󻯵ġª¡ª²¢·Ç¾ßÌåµÄ¡ª¡ªÉ豸»òCPU¡£ÕâÒ»±ê×¼ÐðÊöÁËÒ»¸öÖ¸Áîϵͳ£¬Ò»×é´æ´¢Æ÷£¬Ò»¸ö¾Ö²¿±äÁ¿£¬Ò»¸ö¡°À¬»ø³Ø¡±£¬ºÍÒ»¸ö·½·¨Çø¡£Ò»µ©Ò»¸öJavavmÐéÄâ»úÔÚÒÑÖªµÄƽ̨ÉÏÔËÐУ¬Ò»ÇÐJava³ÌÐò£¨±àÒë³ÌÐòÒÔºóµÄ³ÌÐò£¬³Æ֮Ϊ×Ö½ÚÂ룩¶¼ÄÜÔÚÕâ¸öƽ̨ÉÏÔËÐС£JavavmÐéÄâ»ú£¨JVM£©¿ÉÒÔÒÔÒ»´ÎÒ»ÌõÃüÁîµÄ·½·¨À´±íÊö×Ö½ÚÂ루°ÑËüͶÉäµ½¾ßÌåµÄCPUÃüÁ£¬»òÊÇ×Ö½ÚÂ뻹¿ÉÒÔÓɾßÌåCPUÖгÆ֮Ϊjust-in-timeµÄcÓïÑÔ±àÒëÆ÷¿ªÕ¹½øÒ»²½µÄ±àÒë³ÌÐò¡£
JavaÓïÑÔµÄÒ»¸öÊ®·Ö¹Ø¼üµÄÌØÕ÷±ãÊÇÓëƽ̨µÄ²»Ïà¸ÉÐÔ¡£¶øÓ¦ÓÃJavavmÐéÄâ»úÊÇÍê³ÉÕâÒ»ÌØÐÔµÄÖØÒª¡£Ò»°ãµÄ³ÌÐòÉè¼ÆÓïÑÔ¼ÙÈçÒªÔÚ²»Ò»ÑùµÄƽ̨ÉÏÔËÐУ¬×îÉÙ±ØÐë±àÒë³É²»Ò»ÑùµÄÄ¿µÄ±àÂë¡£¶øÒý½øJavaÓïÑÔvmÐéÄâ»úºó£¬JavaÓïÑÔÔÚ²»Ò»Ñùƽ̨ÉÏÔËÐÐʱ²»ÓÃÔٴαàÒë³ÌÐò¡£JavaÓïÑÔÓ¦Ó÷½Ê½JavavmÐéÄâ»úÆÁ±ÎµôÓëʵ¼Êƽ̨ÓйصÄÐÅÏ¢ÄÚÈÝ£¬´ÙʹJavaÓïÑÔ±àÒë³ÌÐò³ÌÐòÖ»Ðèת»¯³ÉÔÚJavavmÐéÄâ»úÉÏÔËÐеÄÄ¿µÄ±àÂ루×Ö½ÚÂ룩£¬¾Í¿ÉÒÔÔÚ¶àÖÖ¶àÑùƽ̨Éϲ»ÓøĶ¯µØÔËÐС£JavavmÐéÄâ»úÔÚʵÐÐ×Ö½ÚÂëʱ£¬°Ñ×Ö½ÚÂë±íÊö³Éʵ¼Êƽ̨ÉϵļÆËã»úÖ¸ÁîʵÐС£
JVMÊÇjavaµÄºËÐÄÄÚÈݺͻù±¾£¬ÔÚjava±àÒëÆ÷ºÍosƽ̨ÖмäµÄÐéËÆCPU¡£ËüÊÇÒ»ÖÖÀûÓüÆËã»ú·½Ê½Íê³ÉµÄ³éÏóÐԵļÆËã»ú¸ù¾ÝÏÂÒ»²ãµÄϵͳÈí¼þºÍÓ²¼þÅäÖÃƽ̨£¬¿ÉÒÔÔÚÉÏÃæʵÐÐjavaµÄ×Ö½ÚÂë³ÌÐò¡£
java±àÒëÆ÷Ö»Ð賯ÏòJVM£¬×ª»¯³ÉJVMÄÜÁ˽âµÄ±àÂë»ò×Ö½ÚÂëÎĵµ¡£JavaÔ´´úÂë¾±àÒë³É×Ö½ÚÂë³ÌÐò£¬¸ù¾ÝJVM½«Ã¿Ò»ÌõÃüÁîÒë³É²»Ò»Ñùƽ̨ÐòÁкţ¬¸ù¾ÝÌØÊâƽ̨ÔËÐС£
JVMʵÐгÌÐòµÄÈ«¹ý³Ì £º
I.ÔØÈë.classÎļþ
II.¹ÜÀí·½·¨²¢ÊÍ·ÅÄÚ´æ
III.ʵÐзÏÆúÎïËѼ¯
JRE£¨javaÔËÐÐʱ×ÔÈ»»·¾³£©°üÀ¨JVMµÄjava³ÌÐòµÄÔËÐÐ×ÔÈ»»·¾³
JVMÊÇJava³ÌÐòÔËÐеÄÆ÷Ãó,¿ÉÊÇËûÒ»ÆðÒ²ÊǵçÄÔ²Ù×÷ϵͳµÄÒ»¸ö¹ý³Ì,Òò¶øËûÒ²ÊÇÓÐËû×Ô¼ºµÄÔËÐеÄÉúÃüÆÚ,Ò²ÊÇÓÐ×ÔÉíµÄÔ´´úÂëºÍÐÅÏ¢ÊÒÄڿռ䡣
JVMÔÚÈ«²¿jdkÖд¦Ôڵײã,³Ðµ£ÓëµçÄÔ²Ù×÷ϵͳµÄ»¥¶¯,ÓÃÓÚÆÁ±ÎµôµçÄÔ²Ù×÷ϵͳ×ÔÈ»»·¾³,¸øÓèÒ»¸öÍêÈ«µÄJavaÔËÐÐ×ÔÈ»»·¾³,Òò¶øÒ²¾ÍÐéËƼÆËã»ú.µçÄÔ²Ù×÷ϵͳװ½øJVMÊǸù¾ÝjdkÖÐJava.exeÀ´½øÐÐ,¸ù¾Ýϱß4²½À´½øÐÐJVM×ÔÈ»»·¾³¡£
1.½¨Á¢JVMÔËÔØ×ÔÈ»»·¾³ºÍÅ䱸
2.ÔËÔØJVM.dll
3.¸´Î»JVM.dll²¢¹ÒÊÕµ½JNIENV(JNI¶ÁÈ¡²å¿Ú)°¸Àý
4.¶ÁÈ¡JNIEnv°¸ÀýÔËÔز¢½â¾öclassÀà¡£
¡¾ ÊÊÓÃÖÖÀà¡¿
»ù±¾Êý¾ÝÀàÐÍ
byte://1×Ö½ÚÓбê¼ÇÕûÊý½ð¶îµÄ²¹Âë
short://2×Ö½ÚÓбê¼ÇÕûÊý½ð¶îµÄ²¹Âë
int://4×Ö½ÚÓбê¼ÇÕûÊý½ð¶îµÄ²¹Âë
long://8×Ö½ÚÓбê¼ÇÕûÊý½ð¶îµÄ²¹Âë
float://4×Ö½ÚIEEE754µ¥¾«¶È¸¡µãÐÍ
double://8×Ö½ÚIEEE754Ë«¾«¶È¸¡µãÐÍ
char://2×Ö½ÚÎÞ±ê¼ÇUnicode±êʶ·û
¼¸ºõÈκεÄJavaÀàÐͲéÑéÊÇÔÚ³ÌÐòÔËÐÐʱʵÏֵġ£ÉϱßÁоٵÄÔʼ¼Ç¼ÖÖÀàµÄͳ¼ÆÊý¾ÝÔÚJavaʵÐÐʱÎÞÐèÓÃÓ²¼þÅäÖñêʶ¡£Êµ¼Ê²Ù×÷ÕâÖÖÔʼ¼Ç¼ÖÖÀàÐÅÏ¢µÄ×Ö½ÚÂ루ÃüÁ×ÔÉí¾ÍÔçÒÑÇ¿µ÷Á˲Ù×÷ÊýµÄ»ù±¾Êý¾ÝÀàÐÍ£¬ÀýÈçiadd¡¢ladd¡¢faddºÍdaddÃüÁîÈ«ÊÇ°ÑÁ½¸öÊýÇóºÍ£¬Æä²Ù×÷ÊýÖÖÀà±ðÊÇint¡¢long¡¢floatºÍdouble¡£vmÐéÄâ»ú›]Óиøboolean(²¼¶ûÔËË㣩ÖÖÀàÉ趨¶ÀÁ¢µÄÃüÁî¡£booleanÐ͵ÄÐÅÏ¢ÊÇÓÉintegerÃüÁ°üº¬integer»Øµ½À´½â¾öµÄ¡£booleanÐ͵ĶþάÊý×éÔòÊÇÓÃbyteÊý×éÀ´½â¾öµÄ¡£vmÐéÄâ»úÓ¦ÓÃIEEE754Îļþ¸ñʽµÄ¸¡µãÐÍ¡£²»¼æÈÝIEEEÎļþ¸ñʽµÄ½Ï¾ÉµÄ¼ÆËã»ú£¬ÔÚÔËÐÐJavaÊýÖµ¼ÆËã·½·¨³ÌÐòʱ£¬ºÜÓпÉÄÜ»áÊ®·ÖÂý¡£
ÆäËû»ù±¾Êý¾ÝÀàÐÍ
object//¶ÔÒ»¸öJavaobject£¨Ä¿±ê£©µÄ4×Ö½ÚÒýÈë
returnAddress//4×Ö½Ú£¬ÓÃÒÔjsr/ret/jsr-w/ret-wÃüÁî
×¢£ºJava¶þάÊý×é±»×÷Ϊobject½â¾ö¡£
vmÐéÄâ»úµÄ±ê×¼Õë¶ÔobjectÄÚ²¿½á¹¹µÄ¹¹ÔìûÓжÀÌصĹ涨¡£ÔÚSunÆóÒµµÄÍê³ÉÖУ¬¶ÔobjectµÄÒýÈëÊÇÒ»¸ö·µ»ØÖµ£¬ÔÚÆäÖаüÀ¨Ò»¶Ô±íÕ룺һ¸öÖ¸ÕëÆ«Ïò¸ÃobjectµÄ·½Ê½±í£¬ÁíÒ»¸öÆ«Ïò¸ÃobjectµÄÊý¾ÝÐÅÏ¢¡£ÓÃJavavmÐéÄâ»úµÄ×Ö½ÚÂë±íÃ÷µÄ³ÌÐòÓ¦µ±×ñÑÖÖÀàÒªÇó¡£JavavmÐéÄâ»úµÄÍê³ÉÓ¦¾Ü²»ÂÄÐÐÎ¥±³ÁËÖÖÀàÒªÇóµÄ×Ö½ÚÂë³ÌÐò¡£JavavmÐéÄâ»úÒòΪ×Ö½ÚÂë½ç¶¨µÄÏÞ¶¨ºÃÏñÖ»ÓÐÔËÐÐÓÚ32λÏêϸµØÖ·ÊÒÄÚ¿Õ¼äµÄÉ豸ÉÏ¡£¿ÉÊÇ¿ÉÒÔ¹¹½¨Ò»¸öJavavmÐéÄâ»ú£¬Ëü×ԄӵذÑ×Ö½ÚÂëת»¯³É64λµÄ·½Ê½¡£´ÓJavavmÐéÄâ»úÊÊÓõĻù±¾Êý¾ÝÀàÐÍ¿ÉÒÔ¿´µÃ³ö£¬Java¶Ô»ù±¾Êý¾ÝÀàÐ͵ÄÄÚ²¿½á¹¹Îļþ¸ñʽ¿ªÕ¹ÁËÑÏ¿ÁÒªÇó£¬ÄÇÑù´Ùʹ¸÷ÖÖ¸÷ÑùJavavmÐéÄâ»úµÄÍê³É¶ÔÐÅÏ¢µÄ±íÊöÊÇÒ»Öµģ¬½ø¶ø±£ÕÏÁËJavaµÄÓëƽ̨²»Ïà¸ÉÐԺͿÉÀ©Õ¹ÐÔ¡£
×îÏÈ£¬´ó¼Ò±ØÐëÕÆÎÕJVMÊÇɶ¡£¼ÙÈçÄã²¢²»ÊdzÌÐòÔ±µÃ»°£¬ºÜÓпÉÄÜһʱ°ë»áÄÑÒÔÁ˽⣬µ«ÊÇûʶù£¬¿´ÏÂÎÒ´øÄúÉîÈëÁ˽âJVM¡£
Éî²ã´ÎÁ˽âJavavmÐéÄâ»ú(JVM)
ÏÂÃæ´ó¼Ò¾ÍÐèÒª°²ÑbJVMÁË£¬ËüµÄ°²×°Ê¹ÓÃÈ«¹ý³Ì±È½Ï¼òµ¥£¬Ö»ÒªÒÀÕÕÎÒΪÄú´øÀ´µÄʵÀý½Ì³ÌÒ»²½Ò»²½Êµ¼Ê²Ù×÷¾Í¿ÉÒÔ¡£
ÔÚÓ¦ÓÃJVMÈ«¹ý³ÌµÄÖ®ÖУ¬Ãâ²»ÁËÓöµ½¸÷ʽ¸÷ÑùµÄÎÊÌ⣬ûÓÐÈ˾ßÌåÖ¸µ¼µÃ»°ÊÇÄÑÒÔ½âÊ͵ģ¬µ«ÊÇûʶù£¬ÄÜ¿´ÏÂÎÒΪÄúÌṩµÄJVMÒÉÄÑÎÊÌâ±íÃ÷¡£
¼ÙÈçÄ㻹ÊDZØÐë±ðµÄJAVAÊÖ»úÈí¼þÐÖúÄú³ÌÐò±àд¿ª·¢Éè¼Æ£¬ÀýÈçJDK¡¢JREµÈ£¬´ó¼Ò»¹ÎªÄú¸øÓèÁËJavaÈí¼þÈ«¼¯¡£
JavaÈí¼þ´óÈ«
´ò°ü°²×°³ÌÐò£¬´ò°ü°²×°³ÌÐòרÌâÒ³Ã漯ºÏÁ˶à¿îÈÈÃÅ´ò°ü°²×°³ÌÐòµÄÓ¦Óû¶ÓÏÂÔØ£¬°²×°°üÖÆ×÷¹¤¾ßÊÇרҵÓÃÓÚÖÆ×÷°²×°³ÌÐòµÄ´ò°üÀàÈí¼þ£¬µ¥´¿µÄʹÓýű¾À´±àд°²×°³ÌÐò¶ÔÓÚ´ó¶àÊýÈËÀ´Ëµ²»½öÀ§ÄѶøÇÒÈÝÒ׳ö´í£¬Ê¹Óð²×°°üÖÆ×÷¹¤¾ß²»½ö¾ß±¸³õѧÕßÉÏÊÖÈÝÒס¢ÖÆ×÷µÄ°²×°³ÌÐò¹¦ÄÜÍêÉƵÈÓŵ㣬±¾ºÏ¼¯ÕûºÏÁËһϵÁÐרҵµÄ°²×°°üÖÆ×÷¹¤¾ß£¬Ê¹Óüòµ¥£¬¹¦ÄÜÈ«Ãæ¡£
×Ö½ÚÌø¶¯ÓÐʲôapp2024£¿ÔÚÍøÉϼìË÷×Ö½ÚÌø¶¯Ö÷´ò²úÆ·12¿îappµÄ±È½Ï¶à£¬Õâ¶ù²»µÃ²»³ÐÈÏһϽñÈÕÍ·Ìõ¡¢¶¶Òô¶ÌÊÓƵ¡¢»ðɽÊÓƵ¡¢·ÉÁĵÈÈÈÃŲúÆ·ÁË£¡Äܹ»Ëµ³ÉËÑÂÞÁËÉ罻ýÌåÓéÀÖÒµµÄ½É½°ë±Ú£¡¶¶Òô¶ÌÊÓƵÕâ¿îÊÖ»úÈí¼þ½üÆÚ2ÄêÊÜ»¶Óˮƽ´ó»ï¶ù¶¼ÊÇÁ˽âµÄ£¬²»ÂÛÊÇѧԱ£¬¹¤Ð½×å߀ÊǼÒÍ¥¸¾Å®¶¼ÊÇËüµÄÊÜÖÚÈËȺ£¡½ñÈÕÍ·Ìõ¾Í¸ü±ð˵ÁË£¬·¢²¼µÄÔĶÁÐÂÎÅ׬ǮÓÎÏ·Íæ·¨Ò²ÊÇ×ÔÖ÷´´ÐÂÁËÐÂÎű¨µÀÀàapp»¤ÑÛģʽ£¬Ò»ÑùÊÜÖÚȺÌåÁ¿½ÏΪ´ó£¡
¶àÌØÈí¼þվΪÄúÌṩ×îгÌÐòÔ±Èí¼þÈí¼þרÌâ,ÔÚÕâÀﰲ׿°æÆ»¹û°æµÈÓ¦ÓÃÓ¦Óо¡ÓУ¬ÕÒ×îгÌÐòÔ±Èí¼þ¾ÍÀ´¶àÌØÈí¼þÕ¾¡£
2024×îÐÂÍø׬Èí¼þÏÂÔؾÍÔÚ¶àÌØÈí¼þÏÂÔØÖÐÐÄ£¬ÔÚ³ÌÐòÔ±¼æÖ°½Óµ¥Æ½Ì¨ÖÐ׬ǮѼ(ÊÖ»ú׬Ǯ)¡¢×¬Ç®ÈÕÈÕ׬¡¢×¬Ç®ºì°üÅ©³¡µÈÈí¼þÄÜ°ïÄã¸ü¿ìÕÒµ½Õý¹æ°²È«µÄÍø׬Èí¼þ£¬ÔÚ¿ÕÏÐÖ®ÓàÄÜ׬Á㻨Ǯ¡£ÔÚÓà׬Íø¡¢Ð¡Å£×¬Ç®Öл¹ÌṩÁ˸üÈ«µÄÓÎÏ·Ô¼Íæ¡¢ÓïÒôÁÄÌì¡¢¼¼ÄÜ·ÖÏíµÈ¹¦ÄÜ£¬ÏÂÔسÌÐòÔ±¼æÖ°½Óµ¥Æ½Ì¨Èí¼þ¾ÍÔÚ¶àÌØÈí¼þ°²È«ÏÂÔØÖÐÐÄ
¶àÌØÈí¼þ԰ΪÄúÕûÀíÁ˶à¿îÊʺÏ×Ö½ÚÌø¶¯ÆìÏÂÓÐÄÄЩapp£¬ÔÚ¶àÌØÄúÄÜÏÂÔضà¿îÕý¹æµÄ¡¢ÎÞ¶¾Èí¼þ,ÔÚÕâÀﰲ׿°æÆ»¹û°æµÈÓ¦ÓÃÓ¦Óо¡ÓÐ,ÕÒÊʺÏ×Ö½ÚÌø¶¯ÆìÏÂÓÐÄÄЩapp¾ÍÀ´¶àÌØÈí¼þÕ¾°É¡£