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 Cglib
1.CGLIB°üµÄ½éÉÜ
´úÀíΪ¿ØÖÆÒª·ÃÎʵÄÄ¿±ê¶ÔÏóÌṩÁËÒ»ÖÖ;¾¶¡£µ±·ÃÎʶÔÏóʱ£¬ËüÒýÈëÁËÒ»¸ö¼ä½ÓµÄ²ã¡£JDK×Ô´Ó1.3°æ±¾¿ªÊ¼£¬¾ÍÒýÈëÁ˶¯Ì¬´úÀí£¬²¢ÇÒ¾³£±»ÓÃÀ´¶¯Ì¬µØ´´½¨´úÀí¡£JDKµÄ¶¯Ì¬´úÀíÓÃÆðÀ´·Ç³£¼òµ¥£¬µ±ËüÓÐÒ»¸öÏÞÖÆ£¬¾ÍÊÇʹÓö¯Ì¬´úÀíµÄ¶ÔÏó±ØÐëʵÏÖÒ»¸ö»ò¶à¸ö½Ó¿Ú¡£Èç¹ûÏë´úÀ ......
ÍøÉÏÓÐÁ˺ܶàÕâÑùµÄÎÄÕ£¬²»¹ý¸Ð¾õ²¢²»ÊǺÜÈ«£¬ÎÒ¶¼¶«ÕÒÎ÷ÕÒ²Å×îÖÕ°ÑJAVAµ÷ÓÃc++¸ø¸ã¶¨¡£
ÏÂÃæÒýÓÃÁ˺ܶàÍøÉÏÒѾÓеĵÄÄÚÈÝ£¬ÎÒÔÚÕâÀïÖ»ÊÇÕûºÏÒ»´Î£¬ÈÃÒÔºóµÄÅóÓÑÉÙ×ßÍøÂ·¡£
¶à˵ÎÞÒæ£¬¾ßÌåÈçÏ£º
×÷Õß:mykoma
¼ÙÉèËùÓÐÎļþ¶¼·ÅÔÚd:\
Step 1:
дJAVAÎļþ
ÀýÈç³ÌÐòtestdll.java£¬ÄÚÈÝΪ£º
......
ͨ¹ýJava hread dump·ÖÎöÕÒµ½ºÄ·ÑCPU×î¸ßµÄÔ´´úÂë
×÷Õߣººú¼Ò»Ô 2010-04-11
×î½ü²úÆ·ÔÚÔËÐйý³ÌÖгöÏÖÁËÐÔÄÜÎÊÌ⣬Ôںܵ͵ÄÁ÷Á¿µÄÇé¿öÏÂCPU¾Í´ïµ½40%£¬Á÷Á¿ÉÔ¸ßʱCPU¾Í´ïµ½98%¡£
²úÆ·ÊÇJavaдµÄ£¬ÔËÐÐÓÚJBOSSƽ̨¡£²Ù×÷ϵͳΪredhat linux¡£µ±Äãͨ¹ýtopÃüÁî·¢ÏÖÄãµÄÓ¦ÓóÌÐòµÄ½ø³ÌÕ¼ÓÃCPU´ï98%ʱ£¬ÎÒÏëÄã¿Ï¶¨ÏëÖªµÀ¾¿¾¹Ê ......
Java²»ÊÇÍêÃÀµÄ£¬JavaµÄ²»×ã³ýÁËÌåÏÖÔÚÔËÐÐËÙ¶ÈÉÏÒª±È´«Í³µÄC++ÂýÐí¶àÖ®Í⣬JavaÎÞ·¨Ö±½Ó·ÃÎʵ½²Ù×÷ϵͳµ×²ã£¨ÈçϵͳӲ¼þµÈ)£¬Îª´ËJavaʹÓÃnative·½·¨À´À©Õ¹Java³ÌÐòµÄ¹¦ÄÜ¡£
¿ÉÒÔ½«native·½·¨±È×÷Java³ÌÐòͬ£Ã³ÌÐòµÄ½Ó¿Ú£¬ÆäʵÏÖ²½Ö裺
£±¡¢ÔÚJavaÖÐÉùÃ÷native()·½·¨£¬È»ºó±àÒ룻
£²¡¢ÓÃjavah²úÉúÒ»¸ö.hÎļþ£»
£³¡¢Ð´Ò ......