µÚ1Õ ¡¾¿ª×ÚÃ÷Òå¡¿ÍøÂç±à³ÌÈý½£¿ÍBIO¡¢NIO¡¢AIO 
ÍøÂç±à³ÌÊÇRPCµÄµì»ù£¬RPC±à³Ì¹á´©Á˳ÌÐòÔ±ÉúÑĵÄʼÖÕ¡£±¾ÕÂÊ×ÏÈ·ÖÎöÎªÊ²Ã´ÒªÑ§ÍøÂç±à£¬±¾¿ÎΪËÉè¼Æ£¬È»ºó½éÉܿγÌÄÚÈÝÖ÷ÏßÂöÂ磬Èôó¼ÒÇåÎúÖªµÀ±¾¿Î³Ì²¢·Ç¹â˵²»Á·µÄ¼Ù°Ñʽ£¬¶øÊÇ´¦´¦ÓÐʵս£¬ÊµÕ½ÏîÄ¿²½²½ÓÅ»¯£¬×îºóͨ¹ý×ÛºÏÏîÄ¿¹®¹ÌËùѧ¡£... 
 
 1-1 ¡¾Ì½ÃØjava.io¡¿Ê¼ÓÚBIO,ÏÝÓÚNIO,ÖÕÓÚAIO ÊÔ¿´ 
µÚ2ÕÂ ÍøÂç²ãµÄ½âÎöÓëÐÒé 
±¾ÕÂÊ×ÏȶÔÍøÂçÖÐÉæ¼°µÄÍøÂçÁ´Â·²ãµÄ½âÎö½øÐн²½â£¬½øÒ»²½Òý³öÍøÂç»ù±¾ÐÒé֪ʶ¡£Ê¹Ñ§Ô±Á˽â·Ö²ã˼Ï룬¶ÔÈýÖÖÐÒéµÄ¶¨Î»¼°×÷ÓÃÓÐËùÁ˽⡣ 
 
 2-1 URL½âÎöÓë¹¹Ôì 
 2-2 ÓòÃûDNSµÄ½âÎö¹ý³Ì 
 2-3 ÓòÃûDNS²éѯµÄÁ½ÖÖ·½Ê½£ºµÝ¹éÓëµü´ú 
 2-4 ÍøÂçÐÒé¿ìËÙɨä 
 2-5 ÍøÂçÐÒé·ÖÃűðÀà 
 2-6 Á¬½ÓÒ»ÇУ¨ÎïÀí¡¢Íø¿¨¡¢Ö÷»ú¡¢¶Ë¿ÚµÄÁ¬½Ó£© 
 2-7 ÍøÂç¸÷¸ö²ãµÄÊý¾Ý°ü¸ñʽ 
µÚ3Õ ½â¶Ájava.ioרҵÊõÓïÒ²¿ÉÒÔ±äµÃÉú¶¯¾«±Ù 
±¾Õ¶Ôjava.io°ü½øÐнéÉÜ£¬Í¬Ê±ÒÔÒ»¸öÖ±»÷Áé»êµÄÀý×Ó¡°¸æ°×ΪÀý¡±½²½âͬ²½Òì²½×èÈû·Ç×èÈûµÈ¼¸¸öרҵÊõÓͨË×Ò×¶®£¬Ó¡ÏóÉî¿Ì£¬×îºó¼òµ¥ÆÕ¼°Ï̼߳°Ï̳߳صÄʹÓ÷½Ê½£¬Ö÷ҪĿµÄÊÇÔÚºóÃæIOÍøÂç±à³ÌÖзÖÎöÎÊÌ⼰ʹÓÃ×ö´¢±¸¡£... 
 
 3-1 java.ioÖ®×Ö·ûÁ÷ 
 3-2 java.ioÖ®×Ö½ÚÁ÷ 
 3-3 Socket¸ÅÊö 
 3-4 ͬ²½Òì²½×èÈû·Ç×èÈû ÊÔ¿´ 
 3-5 ÍøÂçͨÐÅÖеÄÏß³Ì³Ø 
µÚ4Õ JavaIOµÄ¡°Ç°ÊÀ¡±£ºBIO×èÈûÄ£ÐÍ 
±¾ÕÂÒýÈë±à³ÌÄ£Ð͵ĸÅÄÊ×ÏÈͨ¹ý·ÖÎöBIO±à³ÌÄ£ÐÍ£¬Ê¹Í¬Ñ§Á˽âBIOÉè¼ÆË¼Ï룻Ȼºó¶ÔBIO±à³ÌºËÐÄÀàºÍÍøÂç±à³ÌÔÀí½øÐн²½â£¬Ê¹Í¬Ñ§ÕÆÎÕBIO±à³Ì²½Ö裬ΪºóÐø½øÐлùÓÚNIOµÄÁÄÌìÊÒ×öÆÌµæ¡£ 
 
 4-1 SocketÓëServerSocket 
 4-2 ʵս£ºServerSocket ÊÔ¿´ 
 4-3 ʵս£ºSocket 
 4-4 ÔËÐмòµ¥µÄ·þÎñÆ÷¿Í»§¶ËʵÀý 
 4-5 ÔËÐиĽøµÄ·þÎñÆ÷¿Í»§¶ËʵÀý(ÉÏ) 
 4-6 ÔËÐиĽøµÄ·þÎñÆ÷¿Í»§¶ËʵÀý(ÏÂ) 
µÚ5Õ ʵս£º»ùÓÚBIOµÄ¶àÈËÁÄÌìÊÒÉè¼ÆÓëʵÏÖ 
¹â˵²»Á·¼Ù°Ñʽ¡£ËùνÒÔʷΪ¼ø,¿ÉÒÔÖªÐËÌæ£¬ÏÖÔÚ¿ªÊ¼ÓÃ×î¹ÅÀÏ×ͳµÄ¼¼ÊõBIO½øÐжàÈËÁÄÌìÊÒµÄÉè¼ÆºÍʵս¡£´ÓBIO±à³ÌÄ£Ð͵ķÖÎö£¬µ½ÁÄÌìÊÒ¹¦ÄܵijéÏ󣬵½Éè¼ÆÓëUML½¨Ä££¬×îÖÕµ½ÊµÏÖ£¬½øÒ»²½ÓÅ»¯Öع¹£¬²½²½²»Àëʵ¼Ê¿ª·¢¡£... 
 
 5-1 BIO±à³ÌÄ£ÐͼòÎö 
 5-2 ¶àÈËÁÄÌìÊÒ¹¦ÄܸÅÊö 
 5-3 ¶àÈËÁÄÌìÊÒÉè¼Æ 
 5-4 ¶àÈËÁÄÌìÊÒÉè¼ÆUML½¨Ä£Ö®Ê±Ðòͼ 
 5-5 ʵÏÖÁÄÌìÊÒ·þÎñ¶Ë£ºChatServer 
 5-6 ʵÏÖÁÄÌìÊÒ***£ºChatHandler(ÉÏ) 
 5-7 ʵÏÖÁÄÌìÊÒ***£ºChatHandler(ÏÂ) 
 5-8 ʵÏÖÁÄÌìÊÒ¿Í»§¶Ë£ºChatClient 
 5-9 ʵÏÖÁÄÌìÊÒÓû§ÊäÈë***£ºUserInputHandler£¨ÉÏ£© 
 5-10 ʵÏÖÁÄÌìÊÒÓû§ÊäÈë***£ºUserInputHandler£¨Ï£© 
 5-11 ¶àÈËÁÄÌìÊÒÑÝʾ£¨ÉÏ£© 
 5-12 ¶àÈËÁÄÌìÊÒÑÝʾ£¨Ï£© 
 5-13 αÒì²½IO±à³ÌÄ£ÐͼòÎö 
 5-14 ʹÓÃαÒì²½IO¸Ä½ø¶àÈËÁÄÌìÊÒ 
µÚ6Õ JavaIOµÄ¡°½ñÉú¡±£ºNIO·Ç×èÈûÄ£ÐÍ 
Ê×ÏȶԱÈÉÏÒ»ÕÂBIO±à³ÌÄ£ÐͽéÉÜNIO±à³ÌÄ£ÐÍ£¬Í¨¹ý¶Ô±È½²½âNIOÔÚ±à³ÌÄ£ÐÍÉϵÄÓŵ㣻Ȼºó½²½âNIOÖкËÐÄÀࣻ·Ö±ðÀûÓÃBIOºÍNIOʵս±¾µØÎļþ¿½±´¹¦Äܲ¢·ÖÎöÐÔÄܲîÒìÒýÆðµÄÔÒò£¬º»ÊµNIOµÄ»ù±¾¹¦£¬ÎªºóÐøµÄ¸ÄÔìÁÄÌìÊÒ¹¦ÄÜ×ö¼¼ÊõÆÌµæ¡£... 
 
 6-1 NIO¸ÅÊö 
 6-2 Buffer¼òÎö 
 6-3 Channel¼òÎö 
 6-4 ʵս£º¶à·½·¨ÊµÏÖ±¾µØÎļþ¿½±´£¨ÉÏ£© 
 6-5 ʵս£º¶à·½·¨ÊµÏÖ±¾µØÎļþ¿½±´£¨Ï£© 
 6-6 ±¾µØÎļþ¿½±´ÑÝʾ£¨ÉÏ£© 
 6-7 ±¾µØÎļþ¿½±´ÑÝʾ£¨Ï£© 
 6-8 Selector¼òÎö 
µÚ7Õ ʵս£ºÊ¹ÓÃNIO¸ÄÔì¶àÈËÁÄÌìÊÒ 
´«Ëµ£¬Ä¿Ç°ºÜ»ðµÄNIO¿ò¼ÜÊÇNetty£¬²»Ñ§ºÃNIO£¬½øÈëNettyÊÀ½ç»á±»Å°£¬»¹ÓÐRPCµÄ»ùʯҲÊÇNIO,ËùÒÔ»°²»¶à˵£¬±¾ÕÂÒÔ´úÂëÇý¶¯Ê½ÈÃÄãÈ«ÃæÕÆÎÕNIOÄ£ÐÍϵıà³Ì£¬Í¬Ê±ÈÃÄã¸ÐÊÜÁÄÌìÊÒ¸ÄÔìºóÐÔÄܵÄÌáÉý¡£ 
 
 7-1 NIO±à³ÌÄ£Ð;«½² 
 7-2 NIOÄ£ÐÍʵÏÖChatServe_1 
 7-3 NIOÄ£ÐÍʵÏÖChatServer_2 
 7-4 NIOÄ£ÐÍʵÏÖChatServer-acceptʼþ 
 7-5 NIOÄ£ÐÍʵÏÖChatServer_readʼþ 
 7-6 NIOÄ£ÐÍʵÏÖChatServer_forwardMessage 
 7-7 NIOÄ£ÐÍʵÏÖChatServer_handles 
 7-8 NIOÄ£ÐÍʵÏÖChatClient_1 
 7-9 NIOÄ£ÐÍʵÏÖChatClient_2 
 7-10 NIOÄ£ÐͶàÈËÁÄÌìÊÒÑÝʾ 
µÚ8Õ JavaIOµÄ¡°ºóÊÀ¡±Ö®Ê¦£ºAIOÒ첽ͨÐÅÄ£ÐÍ 
Ê×ÏȶÔÕÕBIO¡¢NIO½éÉÜAIO±à³ÌÄ£ÐÍ£¬»Ø¹ËÈýÖÖ±à³ÌÄ£ÐÍ£¬×ܽáIOÍøÂç±à³ÌµÄÑÝ»¯ÀúÊ·£»È»ºó½²½âJDKÖÐAIOºËÐÄÀ༰ʵÏÖÔÀí²¢ÊáÀíAIO±à³Ì²½Öè¡£ 
 
 8-1 ÄÚºËIOÄ£ÐÍ 
 8-2 Òì²½µ÷ÓûúÖÆ 
 8-3 ·þÎñÆ÷¶ËʵÏÖ(µÚÒ»»ØºÏ) 
 8-4 ·þÎñÆ÷¶ËʵÏÖ(µÚ¶þ»ØºÏ) 
 8-5 ·þÎñÆ÷¶ËʵÏÖ(µÚÈý»ØºÏ) 
 8-6 ·þÎñÆ÷¶ËʵÏÖ(×îÖջغÏ) 
 8-7 ¿Í»§¶ËʵÏÖ 
 8-8 ÑÝʾ 
µÚ9Õ ʵս£º»ùÓÚAIO¸ÄÔì¶àÈËÁÄÌìÊÒ 
Ëùνǰʲ»ÍüºóÊÂ֮ʦ£¬¾¡¹Üµ±Ç°AIOÓõĺÜÉÙ£¬²»¹ý°´ÕÕ¼¼Êõ·¢Õ¹µÄ½ø³Ì£¬Î´À´¿ÉÆÚ¡£Òò´ËÎÒÃÇÐèÒªÃæÏòδÀ´Ñ§Ï°£¬ÃæÏòδÀ´±à³Ì¡£±¾Õ¶ÔÁÄÌìÊÒ½øÐÐAIO¸ÄÔ죬ͬʱ¹Û²ì¸ÄÔìǰºóÐÔÄܵÄÌáÉý¡£ 
 
 9-1 AIOÄ£ÐÍ 
 9-2 ChatServer·þÎñÆ÷µÄ´´½¨ 
 9-3 ChatServer·þÎñÆ÷ʵÏÖAcceptHandler 
 9-4 ChatServer·þÎñÆ÷ʵÏÖClientHandler 
 9-5 ChatServer·þÎñÆ÷ÔÚÏßÓû§Áбí²Ù×÷ 
 9-6 ChatServer·þÎñÆ÷ÌáÈ¡¿Í»§¶ËÉí·Ý±êʶ 
 9-7 ChatServer·þÎñÆ÷ת·¢ÐÅÏ¢²Ù×÷ 
 9-8 AIO¿Í»§¶ËʵÏÖ 
 9-9 AIO¿Í»§¶ËʵÏÖÏûÏ¢·¢ËÍ 
 9-10 AIO¶àÈËÁÄÌìÊÒÑÝʾ 
µÚ10Õ ×ÛºÏʵս£º¼òÒ×°æWeb·þÎñÆ÷¡¾¡°µÀ¡±Óë¡°Êõ¡±µÄ½ø½×¡¿ 
±¾ÕÂÏȶԷþÎñÆ÷»ù±¾ÖªÊ¶×ö½éÉÜ£»È»ºó·ÖÎöweb·þÎñÆ÷µÄÔÀí¼°Ê¹Óã»×îºó´øÁìѧԱ¶¯ÊÖ´ÓÉè¼Æµ½²âÊÔÍêÕûʵÏÖÒ»¸ö¼òÒ×°æweb·þÎñÆ÷¡£ 
 
 10-1 Ïò·þÎñÆ÷ÇëÇó×ÊÔ´ 
 10-2 Tomcat½á¹¹ 
 10-3 ʵÏÖRequest 
 10-4 ²âÊÔRequest 
 10-5 ʵÏÖResponse 
 10-6 ²âÊÔResponse 
 10-7 ʵÏÖConnectorºÍProcessor 
 10-8 ʵÏÖTestClient 
 10-9 ÏòwebserverÇëÇó¾²Ì¬×ÊÔ´ 
 10-10 ʵÏÖServletRequestºÍServletResponse 
 10-11 ʵÏÖServlet 
 10-12 ʹÓÃfacadeģʽ 
 10-13 ʵÏÖServletProcessor 
 10-14 ²âÊÔServletProcessor 
 10-15 ÏòwebserverÇëÇó¶¯Ì¬×ÊÔ´ 
 10-16 ʹÓÃnioÄ£ÐÍÖØÐ´connector 
 10-17 Ïò¸ÄдºóµÄwebserver·¢ËÍÇëÇó 
µÚ11Õ JavaIO¾µäÔÙÏÖ¡¾ÃæÊÔ×°±Æ±Ø±¸¼ÑÆ·¡¿ 
±¾Õ»عËÇ°ÃæÑ§Ï°µ½µÄÔÀí¼°Êµ¼ù±à³ÌÖй۲쵽µÄÏÖÏ󣬶ÔÈýÖÖIO½øÐÐ×ܽᣬ¹éÄɳöÈýÖÖIOµÄÓÅÁÓÊÆ¼°Ê¹Óó¡¾°ºÍʹÓÃÏÞÖÆ£»¶Ô³£¼ûÃæÊÔÌâ½øÐнâ´ð£»¹éÄÉ×ܽáÍøÂç±à³ÌËùÓÐ֪ʶµã¡£ 
 
 11-1 BIOÁÄÌìÊÒÔËÐÐ״̬ 
 11-2 ʹÓÃÏ̳߳صÄBIOÁÄÌìÊÒÔËÐÐ״̬ 
 11-3 NIOÁÄÌìÊÒÔËÐÐ״̬ 
 11-4 AIOÁÄÌìÊÒÔËÐÐ״̬ 
 11-5 ÈýÖÖIOÄ£Ð͵ÄÊÊÓó¡¾° 
µÚ12Õ ÇúÖÕÈËÉ¢£¬½ºþÔÙ»á 
¹§Ï²Ð¡»ï°éÃÇ£¬´³¹Ø³É¹¦£¬Ë³Àûget¡Ìµ½java.ioµÄ¼¼ÄÜ£¬¿Î³ÌβÉù£¬¶ÔÈ«¿Î½øÐÐ×ܽáÊáÀí£¬Ô¤×£Ð¡»ï°éÃÇǰ³ÌËÆ½õ£¬ËûÈÕÎÒÃǽºþÔÙ¼û~~ 
 
 12-1 ˼άµ¼Í¼×ܽᣨÉÏ£© 
 12-2 ˼άµ¼Í¼×ܽᣨÏ£© 
 
Óοͣ¬Èç¹ûÄúÒª²é¿´±¾ÌûÒþ²ØÄÚÈÝÇë »Ø¸´ 
 |