ºìÁªLinuxÃÅ»§
Linux°ïÖú

¹ØÓÚJAVAµÄ¿ÉÒÆÖ²ÐÔ

·¢²¼Ê±¼ä:2006-11-01 00:39:25À´Ô´:ºìÁª×÷Õß:heartweb
¸ÅÊö£ºSunµÄJAVA¼¼ÊõµÄÇ¿´óµÄ¿ÉÒÆÖ²ÐÔ(portability)Ö÷Òª±íÏÖÔÚÈý¸ö¸÷×Ô¶ÀÁ¢µÄ·½Ãæ¡£±¾ÎÄÌÖÂÛÁËÕâÈýÖÖ¿ÉÒÆÖ²ÐÔµÄÌصãºÍËüÃǵIJ»×ã¡£

1.JAVA×÷ΪһÖÖ±à³ÌÓïÑÔ£ºÔ´´úÂë¿ÉÒÆÖ²ÐÔ
×÷ΪһÖÖ±à³ÌÓïÑÔ£¬JAVAÌṩÁËÒ»ÖÖ×î¼òµ¥Í¬Ê±Ò²ÊÇÈËÃÇ×îÊìϤµÄ¿ÉÒÆÖ²ÐÔ--Ô´´úÂëÒÆÖ²¡£ÕâÒâζ×ÅÈÎÒâÒ»¸öJAVA³ÌÐò£¬²»ÂÛËüÔËÐÐÔÚºÎÖÖCPU¡¢²Ù×÷ϵͳ»òJAVA±àÒëÆ÷ÉÏ£¬¶¼½«²úÉúͬÑùµÄ½á¹û¡£Õâ²¢²»ÊÇÒ»¸öеĸÅÄî¡£ÈËÃÇʹÓÃC¡¢C++Ò²¿ÉÒÔ²úÉúͬÑùµÄЧ¹û¡£µ«ÊÇʹÓÃC»òC++±à³ÌÈËÃÇ¿ÉÒÔÓÐÌ«¶àµÄÑ¡Ôñ£¬ÔÚÐí¶àϸ½ÚÉÏËü¶¼Ã»ÓÐÑϸñ¶¨Ò壬È磺δ³õʼ»¯±äÁ¿µÄÖµ¡¢¶ÔÒÑÊͷŵÄÄÚ´æµÄ´æÈ¡¡¢¸¡µãÔËËãµÄβÊýÖµµÈµÈ¡£ËùÒÔ³ý·ÇÄãÒ»¿ªÊ¼¾ÍÑϸñ°´ÕÕϵͳÎ޹صĸÅÄîÀ´½øÐÐÉè¼Æ£¬·ñÔòÕâÖÖ¿ÉÒÆÖ²ÐÔÖ»ÄÜÊÇÒ»ÖÖÀíÂÛÉϵÄÉèÏë¶ø²»ÄÜÐγÉʵ¼ù¡£×ÜÖ®£¬¾¡¹ÜCºÍC++ÓÐÑÏÃܵÄÓï·¨¶¨Ò壬ËüÃǵÄÓïÒâ(symantics)¶¨Ò廹²»ÊDZê×¼µÄ¡£ÕâÖÖÓïÒâÉϵIJ»Í³Ò»Ê¹µÃͬһ¶Î³ÌÐòÔÚ²»Í¬µÄϵͳ»·¾³Ï»á²úÉú²»Í¬µÄ½á¹û¡£ÓÐʱ¼´Ê¹ÏµÍ³Çé¿öÍêÈ«Ïàͬ¶ø½ö½öÓÉÓÚ±àÒëÆ÷µÄÉèÖò»Í¬Ò²»á²úÉúÁîÈËÒâÏë²»µ½µÄ½á¹û¡£¶øJAVA¾Í²»Í¬ÁË¡£Ëü¶¨ÒåÁËÑÏÃܵÄÓïÒâ½á¹¹£¬¶øʹ±àÒëÆ÷²»³Ðµ£Õâ·½ÃæµÄ¹¤×÷¡£ÁíÍ⣬JAVA¶Ô³ÌÐòµÄÐÐΪµÄ¶¨ÒåÒ²±ÈCºÍC++Ñϸñ£¬È磺ËüÌṩÁËÄÚ´æ×Ô¶¯»ØÊÕ¹¦ÄÜ(GarbageCollection)£¬Ê¹³ÌÐò²»ÄÜ·ÃÎÊÔ½½çÄڴ棻Ëü¶Ôδ³õʼ»¯µÄ±äÁ¿Ìṩȷ¶¨ÖµµÈµÈ¡£ËüµÄÕâЩÌØÐÔÄܹ»¼õСÔÚ²»Í¬Æ½Ì¨ÉÏÔËÐеÄJAVA³ÌÐòÖ®¼äµÄ²îÒ죬ҲʹµÃJAVA¾ßÓм´Ê¹Ã»ÓÐJAVAÐéÄâ»úµÄ´æÔÚµÄÇé¿öϱÈCºÍC++¸üºÃµÄƽ̨ÎÞ¹ØÐÔ¡£È»¶ø£¬ÕâЩÌصãÒ²ÓÐËü²»ÀûµÄÒ»Ãæ¡£JAVAÉèÏëÔËÐÐÓÚ¾ßÓÐ32λ×Ö½Ú³¤¶ÈÇÒÿ×Ö½ÚΪ8λµÄ¼ÆËã»úÉÏ£¬Õâ¾ÍʹµÃÄÇЩ8λ×Ö³¤µÄ¼ÆËã»úºÍһЩ¾ÞÐÍ»ú²»ÄÜÓÐЧµÄÔËÐÐJAVA³ÌÐò¡£ÔÚÕâÑùµÄƽ̨ÉϾÍÖ»ÄÜÔËÐÐÄÇЩ¿ÉÒÆÖ²µÄCºÍC++³ÌÐòÁË¡£

2.JAVA×÷Ϊһ¸öÐéÄâ»ú£ºCPU¿ÉÒÆÖ²ÐÔ
´ó¶àÊý±àÒëÆ÷²úÉúµÄÄ¿±ê´úÂëÖ»ÄÜÔËÐÐÔÚÒ»ÖÖCPUÉÏ(ÈçIntelµÄx86ϵÁÐ)£¬¼´Ê¹ÄÇЩÄÜÖ§³Ö¶àÖÖCPUµÄ±àÒëÆ÷Ò²²»ÄÜͬʱ²úÉúÊʺ϶àÖÖCPUµÄÄ¿±ê´úÂë¡£Èç¹ûÄãÐèÒªÔÚÈýÖÖCPU(Èçx86¡¢SPARCºÍMIPS)ÉÏÔËÐÐͬһ³ÌÐò,¾Í±ØÐë±àÒëÈý´Î¡£

µ«JAVA±àÒëÆ÷¾Í²»Í¬ÁË¡£JAVA±àÒëÆ÷²úÉúµÄÄ¿±ê´úÂë(J-Code)ÊÇÕë¶ÔÒ»ÖÖ²¢²»´æÔÚµÄCPU--JAVAÐéÄâ»ú(JAVAVirtualMachine)£¬¶ø²»ÊÇijһʵ¼ÊµÄCPU¡£JAVAÐéÄâ»úÄÜÑڸDz»Í¬CPUÖ®¼äµÄ²î±ð£¬Ê¹J-CodeÄÜÔËÐÐÓÚÈκξßÓÐJAVAÐéÄâ»úµÄ»úÆ÷ÉÏ¡£

ÐéÄâ»úµÄ¸ÅÄî²¢²»ÊÇJAVAËùÌØÓеģº¼ÓÖÝ´óѧ¼¸ÄêÇ°¾ÍÌá³öÁËPASCALÐéÄâ»úµÄ¸ÅÄ¹ã·ºÓÃÓÚUnix·þÎñÆ÷µÄPerl½Å±¾Ò²ÊDzúÉúÓë»úÆ÷Î޹صÄÖмä´úÂëÓÃÓÚÖ´ÐС£µ«Õë¶ÔInternetÓ¦ÓöøÉè¼ÆµÄJAVAÐéÄâ»úµÄÌرðÖ®´¦ÔÚÓÚËüÄܲúÉú°²È«µÄ²»Êܲ¡¶¾ÍþвµÄÄ¿±ê´úÂë¡£ÕýÊÇÓÉÓÚInternet¶Ô°²È«ÌØÐÔµÄÌرðÒªÇó²ÅʹµÃJVMÄܹ»Ñ¸ËÙ±»ÈËÃǽÓÊÜ¡£µ±½ñÖ÷Á÷µÄ²Ù×÷ϵͳÈçOS/2¡¢MacOS¡¢Windows95/NT¶¼ÒѾ­»òºÜ¿ìÌṩ¶ÔJ-CodeµÄÖ§³Ö¡£

×÷ΪһÖÖÐéÄâµÄCPU£¬JAVAÐéÄâ»ú¶ÔÓÚÔ´´úÂë(SourceCode)À´ËµÊǶÀÁ¢µÄ¡£ÎÒÃDz»½ö¿ÉÒÔÓÃJAVAÓïÑÔÀ´Éú³ÉJ-Code£¬Ò²¿ÉÒÔÓÃAda95À´Éú³É¡£ÊÂʵÉÏ£¬ÒѾ­ÓÐÁËÕë¶ÔÈô¸ÉÖÖÔ´´úÂëµÄJ-Code±àÒëÆ÷£¬°üÀ¨Basic¡¢LispºÍForth¡£Ô´´úÂëÒ»¾­×ª»»³ÉJ-CodeÒÔºó£¬JAVAÐéÄâ»ú¾ÍÄܹ»Ö´Ðжø²»Çø·ÖËüÊÇÓÉÄÄÖÖÔ´´úÂëÉú³ÉµÄ¡£ÕâÑù×öµÄ½á¹û¾ÍÊÇCPU¿ÉÒÆÖ²ÐÔ¡£

½«Ô´³ÌÐò±àÒëΪJ-CodeµÄºÃ´¦ÔÚÓÚ¿ÉÔËÐÐÓÚ¸÷ÖÖ»úÆ÷ÉÏ£¬¶øȱµãÊÇËü²»Èç±¾»ú´úÂëÔËÐеÄËٶȿ졣

3.JAVA×÷ΪһÖÖÐéÄâµÄ²Ù×÷ϵͳ(OS)ºÍͼÐÎÓû§½çÃæ(GUI)£º²Ù×÷ϵͳ¿ÉÒÆÖ²ÐÔ
¼´Ê¹¾­¹ýÖØбàÒ룬´ó¶àÊýµÄÓÃCºÍC++±àдµÄWindows³ÌÐòÒ²²»ÄÜÔÚUnix»òMacintoshϵͳÉÏÔËÐС£ÕâÊÇΪʲôÄØ£¿ÒòΪ³ÌÐòÔ±ÔÚ±àдWindows³ÌÐòʱʹÓÃÁË´óÁ¿µÄWindowsAPIºÍÖжϵ÷Ó㬶øWindows³ÌÐò¶Ôϵͳ¹¦Äܵĵ÷ÓÃÓëUnixºÍMacintosh³ÌÐòÓкܴóµÄ²î±ð£¬ËùÒÔ³ý·Ç½«È«Ì×WindowsAPIÒÆÖ²µ½ÆäËü²Ù×÷ϵͳÉÏ£¬·ñÔòÖرàÒëµÄ³ÌÐòÈÔ²»ÄÜÔËÐС£

JAVA²ÉÓÃÁËÌṩһÌ×Óëƽ̨Î޹صĿ⺯Êý(°üÀ¨AWT¡¢UTIL¡¢LANGµÈµÈ)µÄ·½·¨À´½â¾öÕâ¸öÎÊÌâ¡£¾ÍÏóJVMÌṩÁËÒ»¸öÐéÄâµÄCPUÒ»Ñù£¬JAVA¿âº¯ÊýÌṩÁËÒ»¸öÐéÄâµÄGUI»·¾³¡£JAVA³ÌÐò½ö¶ÔJAVA¿âº¯ÊýÌá³öµ÷Ó㬶ø¿âº¯Êý¶Ô²Ù×÷ϵͳ¹¦Äܵĵ÷ÓÃÓɸ÷²»Í¬µÄÐéÄâ»úÀ´Íê³É¡£JAVAÒ²ÔÚËüµÄOS/GUI¿âÖÐʹÓÃÁËÒ»ÖÖ¡°º±¼ûÃû³Æ·û¡±(least-commom-denominator)À´Ìṩ¶ÔijÖÖÌض¨²Ù×÷ϵͳµÄ¹¦Äܵ÷Ó㬼´´Ë¹¦ÄÜÖ»ÔÚÌض¨»·¾³ÏÂÉúЧ¶øÔÚÆäËü²Ù×÷ϵͳÏÂÔò±»ºöÂÔ¡£ÕâÑù×öµÄºÃ´¦ÔÚÓÚ¿ÉÒÔÕë¶Ôij²Ù×÷ϵͳÉú³ÉÓµÓÐÈËÃÇÊìϤµÄ½çÃæµÄÓ¦ÓóÌÐò¶øͬʱ´Ë³ÌÐòÓÖÄÜÔÚÆäËüϵͳÏÂÔËÐС£È±µãÔòÊÇϵͳÖеÄijЩ¹¦Äܵ÷ÓÃÓкÜÇ¿µÄÒÀÀµÐÔÒò¶øÔÚJAVAµÄÐéÄâOS/APIÖÐÄÑÒÔʵÏÖ¡£Óöµ½ÕâÖÖÇé¿ö£¬³ÌÐòÔ±¾ÍÖ»ÄÜд²»¿ÉÒÆÖ²µÄ³ÌÐòÁË¡£

×ÜÖ®£¬JAVAÔÚ¿ÉÒÆÖ²ÐÔ·½ÃæµÄÌصãʹËüÔÚInternetÉϾßÓй㷺µÄÓ¦ÓÃÇ°¾°¡£Í¬Ê±Ëü±¾Éí¾ßÓеķÀ²¡¶¾µÄÄÜÁ¦Ò²Ê¹ËüÔÚÐèÒª¸ß¿É¿¿ÐÔµÄÓ¦ÓÃÖÐÕ¼ÓÐһϯ֮µØ¡£
ÎÄÕÂÆÀÂÛ

¹²ÓÐ 0 ÌõÆÀÂÛ