¶À¼Ò£º³ÌÐòÔ±±Ø±¸Java APIºÍÀàËÑË÷¸¨Öú¹¤¾ß·¢²¼
Òý×Ô:http://news.csdn.net/a/20090623/212109.html
¡¾CSDN6ÔÂ23ÈÕÏûÏ¢¡¿¸ù¾Ý¹úÍâýÌ屨µÀ£¬¿¨ÄÍ»ù÷¡´óѧ¼ÆËã»úϵµÄÑо¿ÈËÔ±ÈÕǰ¿ª·¢ÁËÁ½¿î¹¤¾ßÓÃÓÚ°ïÖú³ÌÐòÔ±´Ó³ÉǧÉÏÍòµÄJava APIÖÐÑ¡ÔñºÏÊʵÄAPI¡£
ÕâÁ½¿î¹¤¾ßµÄÃû×Ö·Ö±ðÊÇJadeiteºÍApatite¡£ËüÃÇÀûÓÃÁËÒÔÈËΪÖÐÐĵÄÉè¼Æ¼¼Êõ£¬´Ó¶ø´ó´óËõ¶ÌÁËËÑѰºÏÊʵÄÀàÓëAPIµÄʱ¼ä¡£ÎªÒ»¸ö³ÌÐòÑ¡ÔñºÏÊʵÄAPI²¢²»ÄÇôֱ¹Û£¬ÈË»ú½»»¥Ñ§½ÌÊÚBrad A. Myers˵µÀ¡£Ä¿Ç°Javadoc¿âÖÐÓÐ35000¸ö·½·¨°üº¬ÔÚ4100¸öÀàÖУ¬¶øÇÒÕâЩÊý×Ö»¹ÔÚ²»¶ÏÀ©´ó£¬ÒòΪÿ·¢²¼Ð°汾µÄJava£¬¾Í»áÓÐÒ»ÅúеÄAPI±»Ìí¼Ó½øÈ¥¡£¾ÍÁ¬×îºÃµÄ¿ª·¢ÈËÔ±Ò²ÎÞ·¨ÍêÈ«ÊìϤÕâЩAPI¡£
ÕâÊÇËùÓгÌÐòÔ±ËùÃæÁٵĻù±¾ÎÊÌ⣬²»¹ÜËûÃÇÊDzËÄñ»¹ÊÇר¼Ò£¬Myers˵µÀ£¬ËäÈ»¿ÉÒÔÈÃAPIÉè¼ÆµÄ¸ü¼Ó¼òµ¥Ò×Ó㬵«ÏÖÓеÄJava ±à³ÌÖÐËùÓõ½µÄ´óÁ¿ÖØÒªµÄAPIʹÓÃÆðÀ´ÈÔÈ»ºÜÀ§ÄÑ¡£JadeiteºÍApatite¿ÉÒÔ°ïÖú³ÌÐòÔ±ÃÇ´ÓÏÖÓеÄAPIÖÐÑ¡Ôñ×Ô¼ºËùÐèÒªµÄ¡£
Jadeite£¨http://www.cs.cmu.edu/~jadeite£©ÊÇJava Documentation with Extra Information Tacked-on for EmphasisµÄËõд¡£Ëü¿ÉÒÔ¸ù¾ÝGoogleËÑË÷ÌṩµÄAPIʹÓÃÆµ¶ÈÀ´Í¨¹ý²»Í¬µÄ×ÖÌå´óСÀ´ÏÔʾAPIµÄÃû³Æ¡£±ÈÈçÆµ·±Ê¹ÓõÄPrintWriter¾Í»áÓôóºÅ×ÖĸÀ´ÏÔʾ£¬¶ø²»¾³£Ê¹ÓõÄPrintEventÔòÓÃСºÅ×ÖÀ´ÏÔʾ¡£
Jadeite»¹Ê¹ÓÃÁËÖÚ°ü£¨Crowd-sourcing£©¼¼ÊõÀ´½â¾öÓеÄAPI²¢²»ÊǹËÃû˼ÒåµÄ°üº¬³ÌÐòÔ±ËùÏ£ÍûʹÓõķ½·¨µÄÎÊÌâ¡£ÀýÈçMessageºÍMimeMessageÀಢ²»°üº¬·¢ËÍemailµÄ·½·¨¡£Òò´ËJadeite¿ÉÒÔÈò»Í¬µÄÓû§ÎªÐèҪʹÓõÄÀàºÍ·½·¨Ìí¼ÓÒ»¸ö½Ð×öplaceholderµÄ¶«Î÷£¬Óû§¿ÉÒÔ±à¼placeholder´Ó¶øÀ´¸ø³ÌÐòÔ±Ìṩָµ¼¡£ÔÚplaceholderÖпÉÒÔ¸æËß³ÌÐòÔ±ËûÃÇËùÐèÒªµÄ·½·¨µÄÈ·ÇÐλÖá£
ÁíÍ⣬ÓеĶÔÏóµÄ´´½¨¶ÔÓÚ³ÌÐòÔ±À´Ëµ²¢²»ÊÇÌØ±ðÊìϤ£¬±ÈÈçSSL sockets¡£ÔÚÕâÖÖÇé¿öÏ£¬Jadeite°üº¬Á˳ÌÐòÔ±´´½¨ÕâЩ¶ÔÏóµÄ×î³£ÓôúÂ룬Óû§¿ÉÒÔ´ÓÕâЩ´úÂë·¶ÀýÖеõ½Æô·¢¡£
ͨ¹ý¶ÔÓû§ÊÔÓõÄÑо¿ÏÔʾʹÓÃJadeite¿ÉÒÔ±ÈʹÓñê×¼µÄJavadocÌá¸ßÈý±¶µÄЧÂÊ¡£
Apatite£¨http://www.cs.cmu.edu/~apatite£©ÊÇAssociative Perusal of APIs That Identifies Targets EasilyµÄËõд£¬ÆäʵÏÖ·½·¨ÓëJadeite²»Í¬£¬Ëü¿ÉÒÔÈóÌÐòÔ±ä¯ÀÀAPIÖ®¼äµÄ¹ØÏµ£¬¿ÉÒԲ鿴²»Í¬µÄ°ü¡¢ÀàºÍ·½·¨Ö®¼äµÄ±Ë´ËÁªÏµ¡£
JadeiteºÍApatiteĿǰ¾ù´¦ÓÚʵÑéÑо¿½×¶Î£¬µ«ÒѾ¿ÉÒÔÈù«ÖÚʹÓ᣽«ÕâÁ½¸ö¹¤¾ßÍÆ¹ãºó»áÔöÇ¿ËüÃÇÔÚÖÚ°ü·½ÃæµÄ¹¦ÄÜ¡£Í¬Ê±»¹ÄܸøÑо¿ÈËÔ±ÖØÒªµÄ·´À¡ÐÅÏ¢£¬´Ó¶ø¼ÌÐø¶ÔËüÃ
Ïà¹ØÎĵµ£º
ÀàµÄ³õʼ»¯ºÍ¶ÔÏó³õʼ»¯ÊÇ JVM ¹ÜÀíµÄÀàÐÍÉúÃüÖÜÆÚÖзdz£ÖØÒªµÄÁ½¸ö»·½Ú£¬Google ÁËÒ»±éÍøÂ磬ÓйØÀà×°ÔØ»úÖÆµÄÎÄÕµ¹ÊDz»ÉÙ£¬È»¶øÀà³õʼ»¯ºÍ¶ÔÏó³õʼ»¯µÄÎÄÕ²¢²»¶à£¬ÌرðÊÇ´Ó×Ö½ÚÂëºÍ JVM ²ã´ÎÀ´·ÖÎöµÄÎÄÕ¸üÊÇÏÊÓÐËù¼û¡£
±¾ÎÄÖ÷Òª¶ÔÀàºÍ¶ÔÏó³õʼ»¯È«¹ý³Ì½øÐзÖÎö£¬Í¨¹ýÒ»¸öʵ¼ÊÎÊÌâÒýÈ룬½«Ô´´úÂëת»»³É JVM ×Ö½ÚÂëºó£¬ ......
Java¶¯Ì¬´úÀíÀàλÓÚJava.lang.reflect°üÏ£¬Ò»°ãÖ÷񻃾¼°µ½ÒÔÏÂÁ½¸öÀࣺ
(1). Interface InvocationHandler£º¸Ã½Ó¿ÚÖнö¶¨ÒåÁËÒ»¸ö·½·¨Object£ºinvoke(Object obj,Method method, Object[] args)¡£ÔÚʵ¼ÊʹÓÃʱ£¬µÚÒ»¸ö²ÎÊýobjÒ»°ãÊÇÖ¸´úÀíÀ࣬methodÊDZ»´úÀíµÄ·½·¨£¬ÈçÉÏÀýÖеÄdothing()£¬argsΪ¸Ã·½·¨µÄ²ÎÊýÊý×é¡£ ......
ÔÚJDKÖУ¬ÓÐÒ»¸ö·Ç³£ÓÐÒâ˼µÄ¿â£ºNIO£¨New I/O£©¡£Õâ¸ö¿âÖÐÓÐ3¸öÖØÒªµÄÀ࣬·Ö±ðÊÇjava.nio.channelsÖÐSelectorºÍChannel£¬ÒÔ¼°java.nioÖеÄBuffer¡£
±¾ÆªÎÄÕÂÎÒÃÇÊ×ÏÈÁ˽âÒ»ÏÂΪʲôÐèÒªNIOÀ´½øÐÐÍøÂç±à³Ì£¬È»ºó¿´¿´Ò»²½Ò»²½À´½²½âÈçºÎÔÚÍøÂç±à³ÌÖÐʹÓÃNIO¡£
ΪʲôÐèÒªNIO
ʹÓÃJava±àд¹ýSocket³ÌÐòµÄͬѧһ¶¨¶¼ÖªµÀSoc ......
1¡¢byteͨ³£ÓÃÀ´½øÐÐλÔËË㣬λ¿í¶ÈÕ£¬Ò»°ã²»ÓÃÀ´¼ÆËã
2¡¢¹Ø¼ü×Ö¶¼ÊÇСдµÄ£¬ÔÚeclipseÖÐÏÔʾΪºìÉ«¡£
3¡¢±äÁ¿¸øÁËȱʡµÄ³õʼֵ£¬CÓïÑÔû¸ø£¬Ö»¸ø·ÖÅäÁ˿ռ䣬ÀïÃæµÄÊý²»È·¶¨
4¡¢charµÄȱʡֵÊÇASCIIÂëÖеÚ1¸ö
5¡¢ÔËÐÐЧÂÊ£ºi++>i+=1>i=i+1
6¡¢²¼¶ûÖµ²»ÄܽøÐдóС±È½Ï£¬Ö»ÄܽøÐÐ==±È½Ï
7¡¢ÏÈËã&&ÔÙËã| ......