dzÎöJava·ºÐÍ
±íÃæÉÏ¿´ÆðÀ´£¬ÎÞÂÛÓï·¨»¹ÊÇÓ¦ÓõĻ·¾³£¨±ÈÈçÈÝÆ÷Àࣩ£¬·ºÐÍÀàÐÍ£¨»òÕß·ºÐÍ£©¶¼ÀàËÆÓÚ C++ ÖеÄÄ£°å¡£µ«ÊÇÕâÖÖÏàËÆÐÔ½öÏÞÓÚ±íÃæ£¬Java ÓïÑÔÖеķºÐÍ»ù±¾ÉÏÍêÈ«ÔÚ±àÒëÆ÷ÖÐʵÏÖ£¬ÓɱàÒëÆ÷Ö´ÐÐÀàÐͼì²éºÍÀàÐÍÍÆ¶Ï£¬È»ºóÉú³ÉÆÕͨµÄ·Ç·ºÐ͵Ä×Ö½ÚÂë¡£ÕâÖÖʵÏÖ¼¼Êõ³ÆÎª²Á³ý£¨erasure£©£¨±àÒëÆ÷ʹÓ÷ºÐÍÀàÐÍÐÅÏ¢±£Ö¤ÀàÐͰ²È«£¬È»ºóÔÚÉú³É×Ö½ÚÂë֮ǰ½«ÆäÇå³ý£©£¬ÕâÏî¼¼ÊõÓÐÒ»Ð©Ææ¹Ö£¬²¢ÇÒÓÐʱ»á´øÀ´Ò»Ð©ÁîÈËÃÔ»óµÄºó¹û¡£ËäÈ»·¶ÐÍÊÇ Java Àà×ßÏòÀàÐͰ²È«µÄÒ»´ó²½£¬µ«ÊÇÔÚѧϰʹÓ÷ºÐ͵Ĺý³ÌÖм¸ºõ¿Ï¶¨»áÓöµ½Í·Í´£¨ÓÐʱºòÈÃÈËÎÞ·¨ÈÌÊÜ£©µÄÎÊÌâ¡£
×¢Ò⣺±¾ÎļÙÉèÄú¶Ô JDK 5.0 Öеķ¶ÐÍÓлù±¾µÄÁ˽⡣
·ºÐͲ»ÊÇбäµÄ
ËäÈ»½«¼¯ºÏ¿´×÷ÊÇÊý×éµÄ³éÏó»áÓÐËù°ïÖú£¬µ«ÊÇÊý×黹ÓÐһЩ¼¯ºÏ²»¾ß±¸µÄÌØÊâÐÔÖÊ¡£Java ÓïÑÔÖеÄÊý×éÊÇбäµÄ£¨covariant£©£¬Ò²¾ÍÊÇ˵£¬Èç¹û Integer À©Õ¹ÁË Number£¨ÊÂʵҲÊÇÈç´Ë£©£¬ÄÇô²»½ö Integer ÊÇ Number£¬¶øÇÒ Integer[] Ò²ÊÇ Number[]£¬ÔÚÒªÇó Number[] µÄµØ·½ÍêÈ«¿ÉÒÔ´«µÝ»òÕ߸³Óè Integer[]¡££¨¸üÕýʽµØËµ£¬Èç¹û Number ÊÇ Integer µÄ³¬ÀàÐÍ£¬ÄÇô Number[] Ò²ÊÇ Integer[] µÄ³¬ÀàÐÍ£©¡£ÄúÒ²ÐíÈÏΪÕâÒ»ÔÀíͬÑùÊÊÓÃÓÚ·ºÐÍÀàÐÍ —— List<Number> ÊÇ List<Integer> µÄ³¬ÀàÐÍ£¬ÄÇô¿ÉÒÔÔÚÐèÒª List<Number> µÄµØ·½´«µÝ List<Integer>¡£²»ÐÒµÄÊÇ£¬Çé¿ö²¢·ÇÈç´Ë¡£
²»ÔÊÐíÕâÑù×öÓÐÒ»¸öºÜ³ä·ÖµÄÀíÓÉ£ºÕâÑù×ö½«ÆÆ»µÒªÌṩµÄÀàÐͰ²È«·ºÐÍ¡£Èç¹ûÄܹ»½« List<Integer> ¸³¸ø List<Number>¡£ÄÇôÏÂÃæµÄ´úÂë¾ÍÔÊÐí½«·Ç Integer µÄÄÚÈÝ·ÅÈë List<Integer>£º
List<Integer> li = new ArrayList<Integer>();
List<Number> ln = li; // illegal
ln.add(new Float(3.1415));
ÒòΪ ln ÊÇ List<Number>£¬ËùÒÔÏòÆäÌí¼Ó Float ËÆºõÊÇÍêÈ«ºÏ·¨µÄ¡£µ«ÊÇÈç¹û ln ÊÇ li µÄ±ðÃû£¬ÄÇôÕâ¾ÍÆÆ»µÁËÔ̺¬ÔÚ li ¶¨ÒåÖеÄÀàÐͰ²È«³Ðŵ —— ËüÊÇÒ»¸öÕûÊýÁÐ±í£¬Õâ¾ÍÊÇ·ºÐÍÀàÐͲ»ÄÜбäµÄÔÒò¡£
ÆäËûµÄбäÎÊÌâ
Êý×éÄܹ»Ð±ä¶ø·ºÐͲ»ÄÜбäµÄÁíÒ»¸öºó¹ûÊÇ£¬²»ÄÜʵÀý»¯·ºÐÍÀàÐ͵ÄÊý×飨new List<String>[3] ÊDz»ºÏ·¨µÄ£©£¬³ý·ÇÀàÐͲÎÊýÊÇÒ»¸öδ°ó¶¨µÄͨÅä·û£¨new List<?>[3] ÊǺϷ¨µÄ£©¡£ÈÃÎÒÃÇ¿´¿´Èç¹ûÔÊÐíÉùÃ÷·ºÐÍÀàÐÍÊý×é»áÔì³Éʲôºó¹û£º
List<String>[] lsa = new List<String>[10]; // illegal
Object[] oa = lsa; //
Ïà¹ØÎĵµ£º
Ïß³Ì×é
ÔÚJavaÖÐÿһ¸öÏ̶߳¼¹éÊôÓÚij¸öÏß³Ì×é¹ÜÀíµÄÒ»Ô±£¬ÀýÈçÔÚÖ÷º¯Êýmain()Ö÷¹¤×÷Á÷³ÌÖвúÉúÒ»¸öỊ̈߳¬Ôò²úÉúµÄÏß³ÌÊôÓÚmainÕâ¸öÏß³Ì×é¹ÜÀíµÄÒ»Ô±¡£¼òµ¥µØËµ£¬Ïß³Ì×é¾ÍÊÇÓÉÏß³Ì×é³ÉµÄ¹ÜÀíÏ̵߳ÄÀ࣬Õâ¸öÀàÊÇjava.lang.ThreadGroupÀà¡£
¿ÉÒÔͨ¹ýʹÓÃÈçÏ´úÂë»ñÈ¡´ËÏß³ÌËùÊôÏß³Ì×éµÄÃû³Æ¡£
Thread.currentThread().ge ......
Java ByteCode
1£¬Ê²Ã´ÊÇBytecode
C/C++±àÒëÆ÷°ÑÔ´´úÂë±àÒë³É»ã±à´úÂ룬Java±àÒëÆ÷°ÑJavaÔ´´úÂë±àÒë³É×Ö½ÚÂëbytecode¡£
Java¿çƽ̨Æäʵ¾ÍÊÇ»ùÓÚÏàͬµÄbytecode¹æ·¶×ö²»Í¬Æ½Ì¨µÄÐéÄâ»ú£¬ÎÒÃǵÄJava³ÌÐò±àÒë³Ébytecodeºó¾Í¿ÉÒÔÔÚ²»Í¬Æ½Ì¨ÅÜÁË¡£
.net¿ò¼ÜÓÐIL(intermediate language)£¬»ã±àÊÇC/C++³ÌÐòµÄÖмä±í´ï·½Ê½£¬ ......
ÃæÏò¶ÔÏó³ÌÐòÉè¼Æ¹²ÓÐÈý´óÌØÐÔ£º·â×°¡¢¼Ì³Ð¡¢¶à̬£»
ÕâÈý´óÌØÐÔÖ®¼äÏ໥¹ØÁª£¬ÆäÖзâ×°ÐÔÊÇÃæÏò¶ÔÏóµÄ»ù´¡£¬¼Ì³ÐÐÔÊÇÈí¼þÖØÓõĹؼü¡£¶ø¶à̬ÐÔÔò±ØÐë´æÔÚÓڼ̳еĻ·¾³Ö®ÖУ¬ÊǶÔÃæÏò¶ÔÏó³ÌÐòÉè¼ÆµÄ²¹³ä¡£
·â×°£»
Java5.0ÐÂÌØÐÔ£»»ù±¾Êý¾ÝÀàÐÍà·â×°Àà ·âÏ䣻 ·â×°Ààà»ù±¾Êý¾ÝÀàÐÍ ²ðÏ䣻
package review;
......
Java²»ÊÇÍêÃÀµÄ£¬JavaµÄ²»×ã³ýÁËÌåÏÖÔÚÔËÐÐËÙ¶ÈÉÏÒª±È´«Í³µÄC++ÂýÐí¶àÖ®Í⣬JavaÎÞ·¨Ö±½Ó·ÃÎʵ½²Ù×÷ϵͳµ×²ã£¨ÈçϵͳӲ¼þµÈ)£¬Îª´ËJavaʹÓÃnative·½·¨À´À©Õ¹Java³ÌÐòµÄ¹¦ÄÜ¡£
¿ÉÒÔ½«native·½·¨±È×÷Java³ÌÐòͬ£Ã³ÌÐòµÄ½Ó¿Ú£¬ÆäʵÏÖ²½Ö裺
£±¡¢ÔÚJavaÖÐÉùÃ÷native()·½·¨£¬È»ºó±àÒ룻
£²¡¢ÓÃjavah²úÉúÒ»¸ö.hÎļþ£»
£³¡¢Ð´Ò ......