Java NIOÀà¿âSelector»úÖÆ½âÎö£¨ÉÏ£©
Java NIOÀà¿âSelector»úÖÆ½âÎö£¨ÉÏ£©
ÕÔï¿¡¡¡¡ ³Âð©
http://blog.csdn.net/haoel
Ò»¡¢ ǰÑÔ
×Ô´ÓJ2SE 1.4°æ±¾ÒÔÀ´£¬JDK·¢²¼ÁËȫеÄI/OÀà¿â£¬¼ò³ÆNIO£¬Æä²»µ«ÒýÈëÁËȫеĸßЧµÄI/O»úÖÆ£¬Í¬Ê±£¬Ò²ÒýÈëÁ˶à·¸´ÓõÄÒ첽ģʽ¡£NIOµÄ°üÖÐÖ÷Òª°üº¬ÁËÕâÑù¼¸ÖÖ³éÏóÊý¾ÝÀàÐÍ£º
Buffer£º°üº¬Êý¾ÝÇÒÓÃÓÚ¶ÁдµÄÏßÐαí½á¹¹¡£ÆäÖл¹ÌṩÁËÒ»¸öÌØÊâÀàÓÃÓÚÄÚ´æÓ³ÉäÎļþµÄI/O²Ù×÷¡£
Charset£ºËüÌṩUnicode×Ö·û´®Ó°Éäµ½×Ö½ÚÐòÁÐÒÔ¼°ÄæÓ³ÉäµÄ²Ù×÷¡£
Channels£º°üº¬socket£¬fileºÍpipeÈýÖֹܵÀ£¬¶¼ÊÇȫ˫¹¤µÄͨµÀ¡£
Selector£º¶à¸öÒì²½I/O²Ù×÷¼¯Öе½Ò»¸ö»ò¶à¸öÏß³ÌÖУ¨¿ÉÒÔ±»¿´³ÉÊÇUnixÖÐselect()º¯ÊýµÄÃæÏò¶ÔÏó°æ±¾£©¡£
ÎҵĴóѧͬѧÕÔï¿ÔÚʹÓÃNIOÀà¿âÊéдÏà¹ØÍøÂç³ÌÐòµÄʱºò£¬·¢ÏÖÁËһЩJavaÒì³£RuntimeException£¬Òì³£µÄ±¨´íÐÅÏ¢ÈÃËû¿ªÊ¼Á˶ÔNIOµÄSelector½øÐÐÁËһЩµ÷²é¡£µ±ÕÔï¿¶ÔÎÒ¹²ÏíÁËSelectorµÄһЩµ×²ã»úÖÆµÄ²ÂÏëºÍµ÷²éʱºò£¬ÎÒÃǾõµÃÕâÊÇÒ»¼þºÜÓÐÒâ˼µÄÊÂÇ飬ÓÚÊÇÔÚ»ïͬÕÔ�øÐйýһϵÁеĵ÷²éºó£¬ÎÒÁ©·¢ÏÖÁ˺ܶàÓÐȤµÄÊÂÇ飬ÓÚÊǵ¼ÖÂÁËÕâÆªÎÄÕµIJúÉú¡£ÕâÒ²ÊÇΪʲô±¾ÎĵÄ×÷ÕßÊðÃûΪÎÒÃÇÁ½È˵ÄÔÒò¡£
ÏÈҪ˵Ã÷µÄÒ»µãÊÇ£¬ÕÔÍÎÒ±¾ÖÊÉ϶¼ÊdzöÉíÓÚUnix/Linux/C/C++µÄ¿ª·¢ÈËÔ±£¬¶ÔÓÚJava£¬Õâ²¢²»ÊÇÎÒÃǵij¤´¦£¬ÕâÆªÎÄÕ±¾ÖÊÉϳöÓÚ¶ÔJavaµÄSelectorµÄºÃÆæ£¬ÒòΪ´Ó±íÃæÉÏÀ´¿´SelectorËÆºõ×öµ½ÁËһЩÈÃÎÒÃÇÕâЩC/C++³öÉíµÄÈ˱ȽϾªÆæµÄÊÂÇé¡£
ÏÂÃæÈÃÎÒÀ´ÎªÄã½²ÊöÒ»ÏÂÕâ¶Î¹ÊÊ¡£
¶þ¡¢ ¹ÊÊ¿ªÊ¼ : ÈÃC++³ÌÐòԱдJava³ÌÐò!
ûÓÐÑÏÖØÄÚ´æÎÊÌ⣬´óÁ¿·á¸»µÄSDKÀà¿â£¬³¬ÈÝÒ×µÄ¿çÆ½Ì¨£¬³ýÁËÔÚÐÔÄÜÉÏÓÐЩ΢´Ç£¬C++³öÉíµÄ³ÌÐòÔ±´ÓÀ´¶¼²»»á¾õµÃJavaÊÇÒ»¼þºÜÀ§ÄѵÄÊÂÇé¡£µ±È»£¬¶ÔÓÚ³¤ÆÚϰ¹ßÓÚʹÓòÙ×÷ϵͳAPI£¨ÏµÍ³µ÷ÓÃSystem Call£©µÄC/C++³ÌÐòÀ´Ëµ£¬Ãæ¶ÔJavaÖеıȽϓÁíÀà”µØ²Ù×÷ϵͳ×ÊÔ´µÄ·½·¨¿ÉÄÜ»áÂÔ¸ÐÀ§»ó£¬µ«Íò±ä²»ÀëÆä×Ú£¬Ö»ÐèÒª¶ÔÃæÏò¶ÔÏóµÄÉè¼ÆÄ£Ê½ÓÐÒ»¶¨µÄÁ˽⣬Óò»Á˶೤ʱ¼ä£¬JavaµÄSDKÀà¿âÒ²ÄÜÍæµÃËæÐÄËùÓû¡£
ÔÚʹÓÃJava½øÐÐÏà¹ØÍøÂç³ÌÐòµÄµÄÉè¼ÆÊ±£¬³öÉíC/C++µÄÈË£¬Ê×ÏÈÏëµ½µÄ¿ò¼Ü¾ÍÊǶà·¸´Óã¬Ïëµ½¶à·¸´Óã¬Unix/LinuxÏÂÂíÉϾÍÄÜÈôÓÏëµ½select, poll, epollϵͳµ÷Óá£ÓÚÊÇ£¬ÔÚ¿´µ½JavaµÄNIOÖеÄSelectorÀàʱ±ØÈ»»á±¶¸ÐÇ×ÇС£ÉÔ¼Ó²éÔÄÒ»ÏÂSDKÊÖ²áÒÔ¼°Ïà¹ØÀý³Ì£¬²»Ò»»á¶ù£¬Ò»¸ö¶à·¸´ÓõĿò¼Ü±ã³ÊÏÖ
Ïà¹ØÎĵµ£º
ת £º http://www.jcourse.cn/read/234
2009-03-02 ×÷Õß:
zhangtaolv
ÔÚÎÒÃÇÈÕ³£¿ª·¢ÖУ¬¾³£»áÓöµ½¶ÔÎı¾µÄ²Ù×÷£¬²¢ÇÒÔÚÒ»°ãµÄMISϵͳÖУ¬Îı¾²Ù×÷ÓÈΪ¶à£¬ÈçÓû§Ãû¡¢ÎÄÕÂÄÚÈÝ¡¢ÎÄÕ±êÌâ¡¢ºÏͬÄÚÈݵȡ£ÔÚ֮ǰµÄ½Ì³ÌÖУ¬ÎÒÒ²¸ø´ó¼Ò½²½âÁËJavaÖÐ×î»ù±¾µÄ×Ö·û´®²Ù×÷µÄÀ࣬String¡£ÔÚ֮ǰµÄ½Ì³ÌÖÐÎÒÒ²¸ø´ó¼Ò½²ÁËStr ......
JavaÉè¼ÆÄ£Ê½Ö®Facadeģʽ GOF¡¶Éè¼ÆÄ£Ê½¡·Ò»Êé¶ÔFacadeģʽÊÇÕâÑùÃèÊöµÄ:
¡¡¡¡Îª×ÓϵͳÖеÄÒ»×é½Ó¿ÚÌṩһ¸öͳһ½Ó¿Ú¡£Facadeģʽ¶¨ÒåÁËÒ»¸ö¸ü¸ß²ãµÄ½Ó¿Ú£¬Ê¹×Óϵͳ¸ü¼ÓÈÝÒ×ʹÓá£
¡¡¡¡´óÖÂÒâ˼ÊÇ˵£ºÊ¹ÓÃÒ»ÖÖ±ÈÔÓз½Ê½¸ü¼òµ¥µÄ°ì·¨Óëϵͳ½»»¥¡£ÀýÈ磬ÎÒÃǰÑÒ»¸öºÜÖØÒªµÄÎļþ£¬·ÅÔÚÁ˵ڶþ³éÌëÀ¶øµÚ¶þ¸ö³éÌëµÄÔ ......
ʲôÊÇ·´Éä
java³ÌÐò¿ÉÒÔÔÚÔËÐÐÆÚ¼ä¶¯Ì¬µÄ¼ÓÔØ¡¢½âÎöºÍʹÓÃһЩÔÚ±àÒë½×¶Î²¢²»È·¶¨µÄÀàÐÍ£¬ÕâÒ»»úÖÆ±»³ÆÎª“·´É䣨reflection£©”»òÕß“ÄÚÊ¡£¨introspection£©”.
·´Éä»úÖÆÌṩµÄ¹¦ÄÜ
1£¬¼ÓÔØÔËÐÐʱ²ÅÄÜÈ·¶¨µÄÀàÐÍ
  ......
StringÀàÖеĹ¹Ô캯Êý
String(); ¹¹ÔìÒ»¸ö¿Õ×Ö·û´®¶ÔÏó
String(byte[] bytes); ͨ¹ýbyteÊý×é¹¹Ôì×Ö·û´®¶ÔÏó
String(byte[] bytes,int offset,int length);ͨ¹ýbyteÊý×飬´Óoffset¿ªÊ¼£¬×ܹ²length³¤µÄ×Ö½Ú¹¹Ôì×Ö·û´®¶ÔÏó
String(char[] value); ͨ¹ýcharÊý×é¹¹Ôì×Ö·û´®¶ÔÏó
String(byte[] char,int offset,int length) ......