Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

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ÖÐByteÐÍת×Ö·û´®

public static String byteToString(byte src)
{
    String desc = null;
    int i = 0;    //È¡1¸ö×Ö½Ú
    i = src&0xFF;
    desc = Integer.toHexString(i);
    if (desc.length() == 1) ......

javaÖеÄURLEncoderºÍURLDecoderÀà

javaÖеÄURLEncoderºÍURLDecoderÀà
    URLEncoderÀà°üº¬½«×Ö·û´®×ª»»Îªapplication/x-www-form-urlencoded MIME ¸ñʽµÄ¾²Ì¬·½·¨¡£
ΪÁ˽â¾öwebÉè¼ÆÖв»Í¬²Ù×÷ϵͳ¼äµÄ²îÒìÐÔ£¬ÎÒÃÇÔÚURLÖÐʹÓõÄ×Ö·û¾Í±ØÐëÊÇÒ»¸öASCII×Ö·û¼¯µÄ¹Ì¶¨×Ö¼¯ÖеÄÔªËØ£¬¾ßÌåÈçÏ£º
1.´óд×ÖĸA-Z
2.Сд×Öĸa- ......

×ܽἸÖÖJava×Ö·û´®·´×ªµÄʵÏÖ·½·¨

ÓÃÈýÖÖ·½·¨À´ÊµÏÖ×Ö·û´®µÄ·´×ª
/**
* @(#)ReverseString.java
*
* ReverseString application
*
* @author
* @version 1.00 2010/4/20
*/
import java.util.*;
import java.io.*;

public class ReverseString {


public static void main(String[] args) throws IOException{
......

javaµÄÏß³Ìͬ²½»úÖÆsynchronized¹Ø¼ü×ÖµÄÀí½â

ÓÉÓÚͬһ½ø³ÌµÄ¶à¸öÏ̹߳²ÏíͬһƬ´æ´¢¿Õ¼ä£¬ÔÚ´øÀ´·½±ãµÄͬʱ£¬Ò²´øÀ´ÁË·ÃÎʳåÍ»Õâ¸öÑÏÖØµÄÎÊÌâ¡£JavaÓïÑÔÌṩÁËרÃÅ»úÖÆÒÔ½â¾öÕâÖÖ³åÍ»£¬ÓÐЧ±ÜÃâÁËͬһ¸öÊý¾Ý¶ÔÏó±»¶à¸öÏß³Ìͬʱ·ÃÎÊ¡£
ÐèÒªÃ÷È·µÄ¼¸¸öÎÊÌ⣺
       1)synchronized¹Ø¼ü×Ö¿ÉÒÔ×÷Ϊº¯ÊýµÄÐÞÊηû£¬Ò²¿É×÷Ϊº¯ÊýÄÚµÄÓï¾ä£ ......

JavaÉè¼ÆÄ£Ê½Ö®Flyweightģʽ


GOF£ºÔËÓù²Ïí¼¼ÊõÓÐЧµØÖ§³Ö´óÁ¿Ï¸Á£¶ÈµÄ¶ÔÏó¡£
 
½âÊÍһϸÅÄҲ¾ÍÊÇ˵ÔÚÒ»¸öϵͳÖÐÈç¹ûÓжà¸öÏàͬµÄ¶ÔÏó£¬ÄÇôֻ¹²ÏíÒ»·Ý¾Í¿ÉÒÔ
ÁË£¬²»±ØÃ¿¸ö¶¼È¥ÊµÀý»¯Ò»¸ö¶ÔÏó¡£±ÈÈç˵£¨ÕâÀïÒýÓÃGOFÊéÖеÄÀý×Ó£©Ò»¸öÎı¾ÏµÍ³£¬Ã¿¸ö×Öĸ¶¨Ò»¸ö¶ÔÏó£¬ÄÇô´óСд×Öĸһ¹²¾ÍÊÇ52¸ö£¬ÄÇô¾ÍÒª¶¨Òå
52¸ö¶ÔÏó¡£Èç¹ûÓÐÒ»¸ö1MµÄÎ ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ