¡¾6848¡¿-һվʽѧϰJavaÍøÂç±à³Ì È«ÃæÀí½âBIO NIO AIO

һվʽѧϰJavaÍøÂç±à³Ì È«ÃæÀí½âBIO NIO AIO


µÚ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_6
 7-7 NIOÄ£ÐÍʵÏÖChatClient_1
 7-8 NIOÄ£ÐÍʵÏÖChatClient_2
 7-9 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 ˼άµ¼Í¼×ܽᣨÏ£©

 

Èç¹ûÄãÓи÷ÖÖ×ÊÔ´ÐèÇó¿ÉÒÔÁªÏµÎÒ
·µ»ØÁбí