See More

------------------------------------ Buffer | ------------------------------------ # ÊÇÒ»¸ö³éÏóÀà # ×Ó³éÏóÀà ByteBuffer CharBuffer DoubleBuffer FloatBuffer IntBuffer LongBuffer ShortBuffer # ¹¹½¨·½Ê½ * ʹÓÃ×Ó³éÏóÀàµÄ¾²Ì¬·½·¨¹¹½¨ ByteBuffer buf = ByteBuffer.allocate(48); //·ÖÅä48×Ö½ÚcapacityµÄByteBuffer¡£ CharBuffer buf = CharBuffer.allocate(1024); //·ÖÅä1024×Ö½ÚcapacityµÄCharBuffer¡£ ------------------------------------ Buffer ÊôÐÔ | ------------------------------------ # capacity,position,limit # »º³åÇø±¾ÖÊÉÏÊÇÒ»¿é¿ÉÒÔдÈëÊý¾Ý£¬È»ºó¿ÉÒÔ´ÓÖжÁÈ¡Êý¾ÝµÄÄÚ´æ¡£Õâ¿éÄÚ´æ±»°ü×°³ÉNIO Buffer¶ÔÏ󣬲¢ÌṩÁËÒ»×é·½·¨£¬ÓÃÀ´·½±ãµÄ·ÃÎʸÿéÄÚ´æ¡£ # ΪÁËÀí½âBufferµÄ¹¤×÷Ô­Àí£¬ÐèÒªÊìϤËüµÄÈý¸öÊôÐÔ£º capacity position limit # capacity * ×÷Ϊһ¸öÄÚ´æ¿é£¬BufferÓÐÒ»¸ö¹Ì¶¨µÄ´óСֵ£¬Ò²½Ð"capacity".ÄãÖ»ÄÜÍùÀïдcapacity¸öbyte¡¢long£¬charµÈÀàÐÍ¡£ * Ò»µ©BufferÂúÁË£¬ÐèÒª½«ÆäÇå¿Õ£¨'ͨ¹ý¶ÁÊý¾Ý»òÕßÇå³ýÊý¾Ý'£©²ÅÄܼÌÐøÐ´Êý¾ÝÍùÀïдÊý¾Ý¡£ * '¿ª±ÙµÄÄÚ´æ´óС' # position * µ±ÄãдÊý¾Ýµ½BufferÖÐʱ£¬position±íʾµ±Ç°µÄλÖᣳõʼµÄpositionֵΪ0.µ±Ò»¸öbyte¡¢longµÈÊý¾Ýдµ½Bufferºó£¬ position»áÏòÇ°ÒÆ¶¯µ½ÏÂÒ»¸ö¿É²åÈëÊý¾ÝµÄBufferµ¥Ôª¡£ * position×î´ó¿ÉΪcapacity ¨C 1. * 'Ö¸ÕëλÖÃ' # limit * ÔÚдģʽÏ£¬BufferµÄlimit±íʾÄã×î¶àÄÜÍùBufferÀïд¶àÉÙÊý¾Ý¡£ дģʽÏ£¬limitµÈÓÚBufferµÄcapacity¡£ * µ±Çл»Bufferµ½¶Áģʽʱ£¬limit»á±»ÉèÖóÉдģʽϵÄpositionÖµ¡£Ò²¾ÍÊÇ˵,Ò²¾ÍÊÇ˵¿ÉÒÔ¶ÁÈ¡µ½¶àÉÙÊý¾Ý * 'дµÄʱºò±íʾ,¿ÉÒÔд¶àÉÙÊý¾Ý' * '¶ÁµÄÊÇhi±íʾ,¿ÉÒÔ¶Á¶àÉÙÊý¾Ý' ------------------------------------ Buffer ½Ó¿Ú·½·¨ | ------------------------------------ Object array(); int arrayOffset(); int capacity(); Buffer clear(); Buffer flip(); boolean hasArray(); boolean hasRemaining(); boolean isDirect(); boolean isReadOnly(); int limit(); Buffer limit(int newLimit); Buffer mark(); int position(); Buffer position(int newPosition); int remaining(); Buffer reset(); Buffer rewind();