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ÊÖ²áÒÔ¼°Ïà¹ØÀý³Ì£¬²»Ò»»á¶ù£¬Ò»¸ö¶à·¸´ÓõĿò¼Ü±ã³ÊÏÖ
Ïà¹ØÎĵµ£º
javaÖеÄURLEncoderºÍURLDecoderÀà
URLEncoderÀà°üº¬½«×Ö·û´®×ª»»Îªapplication/x-www-form-urlencoded MIME ¸ñʽµÄ¾²Ì¬·½·¨¡£
ΪÁ˽â¾öwebÉè¼ÆÖв»Í¬²Ù×÷ϵͳ¼äµÄ²îÒìÐÔ£¬ÎÒÃÇÔÚURLÖÐʹÓõÄ×Ö·û¾Í±ØÐëÊÇÒ»¸öASCII×Ö·û¼¯µÄ¹Ì¶¨×Ö¼¯ÖеÄÔªËØ£¬¾ßÌåÈçÏ£º
1.´óд×ÖĸA-Z
2.Сд×Öĸa- ......
ÓÉÓÚͬһ½ø³ÌµÄ¶à¸öÏ̹߳²ÏíͬһƬ´æ´¢¿Õ¼ä£¬ÔÚ´øÀ´·½±ãµÄͬʱ£¬Ò²´øÀ´ÁË·ÃÎʳåÍ»Õâ¸öÑÏÖØµÄÎÊÌâ¡£JavaÓïÑÔÌṩÁËרÃÅ»úÖÆÒÔ½â¾öÕâÖÖ³åÍ»£¬ÓÐЧ±ÜÃâÁËͬһ¸öÊý¾Ý¶ÔÏó±»¶à¸öÏß³Ìͬʱ·ÃÎÊ¡£
ÐèÒªÃ÷È·µÄ¼¸¸öÎÊÌ⣺
1)synchronized¹Ø¼ü×Ö¿ÉÒÔ×÷Ϊº¯ÊýµÄÐÞÊηû£¬Ò²¿É×÷Ϊº¯ÊýÄÚµÄÓï¾ä£ ......
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) ......
¡¾51CTO¾«Ñ¡ÒëÎÄ¡¿ÔÚ±¾ÆªÎÄÕÂÖУ¬ÖøÃû³ÌÐòÔ±Justin JamesÌÖÂÛÁËJavaµÄδÀ´£¬ÒÔ¼°JavaÓë.NETµÄ¿ª·¢³É±¾¶Ô±È£¬ºÍJavaÊÇ·ñÄܹ»È¡´ú.NET¡£JustinÔÚÎÄÖÐ×ܽáÁËËÄ´óÒªµã£¬ÖØµã¹Ø×¢ÁËÁ½¸öÔËÐÐʱÔÚÐÔÄܺͳɱ¾ÉϵÄÒì֮ͬ´¦¡£
1¡¢Java SE 7ÔâÓö.NET CLR»á·¢Éúʲô£¿
´ÓJava SE 7µÄ¹¦ÄÜÁбíÖпÉÒÔ¿´³ö£¬ËüÏà±ÈÒÔǰ°æ±¾ÓÐÁ˳¤×ãÌá¸ß¡£ ......