See More

------------------------------- ByteBuffer | ------------------------------- # Buffer ×ÓÀà ------------------------------- ByteBuffer-API | ------------------------------- # ÊôÐÔ # ʵÀý·½·¨ //========================¶ÁÏà¹Ø byte get(); * ·µ»ØÒ»¸öbyteµÄÊý¾Ý * ÿ´ÎÖ´ÐÐ get(),¶¼»áÈà position ÏòÇ°ÒÆ¶¯Ò»Î» ByteBuffer get(byte[] dst); * ¶ÁÈ¡N(dst.length)¸öÔªËØµ½ dst, position »áÏòÇ°ÒÆ¶¯,ËùÒÔ:'Êý×éµÄ³¤¶È,²»Äܳ¬³ö:remaining,»áÅ׳öÒì³£' * Êý×鳤¶È´óÓÚ buf µÄ¿É¶Á/Ð´ÔªËØ(remaining)³¤¶È,Å׳öÒì³£ * Êý×鳤¶ÈСÓÚ buf µÄ¿É¶Á/Ð´ÔªËØ(remaining)³¤¶È,½ö½ö×°ÂúÊý×é ByteBuffer get(byte[] dst, int offset, int length); * ¶ÁÈ¡length¸öÔªËØµ½ dst, position »áÏòÇ°ÒÆ¶¯,ËùÒÔ:'length,²»Äܳ¬³ö:remaining,»áÅ׳öÒì³£' * offset Êý×鿪ʼдÈëµÄλÖà * length ´Óµ±Ç°position¶ÁÈ¡¶àÉÙ¸ö×Ö½ÚÊý¾Ý byte get(int index); * ¾ø¶Ô¶Á,¶ÁÈ¡byteBufferµ×²ãµÄbytesÖÐϱêΪindexµÄbyte£¬²»¸Ä±äposition byte[] array(); * »ñÈ¡»º³åÇøÄÚ²¿µÄÊý×éÒýÓÃÒýÓà //========================дÓëÐÞ¸ÄÏà¹Ø ByteBuffer put(byte b); * дÈëÒ»¸ö×Ö½Ú,positionÏòÇ°ÒÆ¶¯ ByteBuffer put(int index, byte b); * ¾ø¶ÔдÈë,²»»áÒÆ¶¯postion,Èç¹ûÓÐ.»á±»Ìæ»» ByteBuffer put(byte[] src); * дÈë(src.length)¸öÔªËØµ½ buf, position »áÏòÇ°ÒÆ¶¯,ËùÒÔ:'Êý×éµÄ³¤¶È,²»Äܳ¬³ö:remaining,»áÅ׳öÒì³£' ByteBuffer put(byte[] src, int offset, int length); * дÈë(length)¸öÔªËØµ½ buf, position »áÏòÇ°ÒÆ¶¯,ËùÒÔ:'lengthµÄ³¤¶È,²»Äܳ¬³ö:remaining,»áÅ׳öÒì³£' * offset ´ÓÊý×éÄĸöϱ꿪ʼд * length дÈë¶àÉÙÊý¾Ý ByteBuffer put(ByteBuffer src); * °Ñ src ÖеÄÊý¾ÝдÈëµ½µ±Ç° buf,Ö¸ÕëÏòÇ°ÒÆ¶¯,ËùÒÔ:'srcµÄremaining,²»Äܳ¬³öµ±Ç°buf:remaining,»áÅ׳öÒì³£' * µ±Ç°remaining¾ÍÊÇ:¿ÉÒÔдÈë¶àÉÙ¸öÊý¾Ý * src remaining¾ÍÊÇ:¿ÉÒÔ¶ÁÈ¡¶àÉÙ¸öÊý¾Ý //========================λÊôÐÔÏà¹Ø int remaining(); * ·µ»Øµ±Ç°Î»ÖÃÓëÏÞÖÆÖ®¼äµÄÔªËØÊý¡£ * ÔÚдģʽÏÂ,·µ»Ø'Ê£Óà¿Éд'µÄ¿Õ¼ä * ÔÚ¶ÁģʽÏÂ,·µ»Ø'Ê£Óà¿É¶Á'µÄ¿Õ¼ä * Ô´Âë:limit - position; boolean hasRemaining(); * ÔÚ¶ÁģʽÏÂ,ÅжÏÊÇ·ñÓл¹ÓпɶÁµÄÔªËØ * ÔÚдģʽÏÂ,ÅжÏÊÇ·ñ»¹¿ÉÒÔдÈëеÄÔªËØ * Ô´Âë:position < limit; int limit(); * ·µ»Ølmit * ÔÚдģʽÏÂ,·µ»ØµÄ¾ÍÊÇ'×î´ó¿ÉÒÔдÈë¶àÉÙ' * ÔÚ¶ÁģʽÏÂ,·µ»ØµÄ¾ÍÊÇ'×î¶à¿ÉÒÔ¶ÁÈ¡¶àÉÙ' Buffer limit(int newLimit); * ÉèÖÃÐ嵀 limit int position(); * »ñȡָÕëµÄλÖà Buffer position(int newPosition); * ÖØÐÂÉèÖÃÖ¸ÕëµÄλÖà int capacity(); * ·µ»Ø¿ª±ÙµÄÄÚ´æ´óС Buffer clear(); * Çå¿Õ,²¢Ã»ÓÐɾ³ýÊý¾Ý,½ö½öÊÇÐÞ¸ÄÁËÖ¸Õë * Ô´Âë:position = 0;limit = capacity;mark = -1; * '¾­³£ÓÃÓÚ´Ó¶Áģʽ,Çл»µ½Ð´Ä£Ê½' Buffer flip(); * ¸´Î»,ÐÞ¸ÄдģʽΪ¶Á * Ô´Âë:limit = position;position = 0;mark = -1; * '¾­³£ÓÃÓÚ´Óдģʽ,Çл»µ½¶Áģʽ' Buffer rewind(); * ½«positionÉè»Ø0£¬ËùÒÔÄã¿ÉÒÔÖØ¶ÁBufferÖеÄËùÓÐÊý¾Ý¡£ * limit±£³Ö²»±ä£¬ÈÔÈ»±íʾÄÜ´ÓBufferÖжÁÈ¡¶àÉÙ¸öÔªËØ£¨byte¡¢charµÈ£©¡£ Buffer mark(); * ±ê¼Çµ±Ç°Î»ÖÃ,¿ÉÒÔ±ê¼ÇBufferÖеÄÒ»¸öÌØ¶¨position¡£ * Ö®ºó¿ÉÒÔͨ¹ýµ÷ÓÃBuffer.reset()·½·¨»Ö¸´µ½Õâ¸öposition¡£ Buffer reset(); * ͨ¹ýµ÷ÓÃBuffer.mark()·½·¨£¬¿ÉÒÔ±ê¼ÇBufferÖеÄÒ»¸öÌØ¶¨position¡£ * Ö®ºó¿ÉÒÔͨ¹ýµ÷ÓÃBuffer.reset()·½·¨»Ö¸´µ½Õâ¸öposition¡£ //========================ÆäËû byte[] array(); * °Ñ¸ÃBuffereת»»ÎªÍ¬µÈ³¤¶ÈµÄ×Ö½ÚÊý×é * ¿ÕµÄÔªËØ,ĬÈÏֵΪ0 boolean isDirect(); * Åжϵ±Ç°µÄ»º³åÇøÊÇ·ñÊÇÖ±½ÓÓÉϵͳ·ÖÅäÄÚ´æ boolean isReadOnly(); * Åжϻº³åÇøÊÇ·ñÊÇÖ»¶ÁµÄ ByteBuffer compact(); * Çå¿Õ»º³åÇø,Ö»»áÇå³ýÒѾ­¶Á¹ýµÄÊý¾Ý¡£ * ÈκÎδ¶ÁµÄÊý¾Ý¶¼±»ÒƵ½»º³åÇøµÄÆðʼ´¦,ÐÂдÈëµÄÊý¾Ý½«·Åµ½»º³åÇøÎ´¶ÁÊý¾ÝµÄºóÃæ¡£ * ½«ËùÓÐδ¶ÁµÄÊý¾Ý¿½±´µ½BufferÆðʼ´¦¡£È»ºó½«positionÉèµ½×îºóÒ»¸öδ¶ÁÔªËØÕýºóÃæ¡£ * limitÊôÐÔÒÀÈ» ¸ú clear()·½·¨Ò»Ñù£¬ÉèÖóÉcapacity¡£ * ÏÖÔÚBuffer×¼±¸ºÃдÊý¾ÝÁË£¬µ«ÊDz»»á¸²¸Çδ¶ÁµÄÊý¾Ý¡£ int compareTo(ByteBuffer that); * compareTo()·½·¨±È½ÏÁ½¸öBufferµÄÊ£ÓàÔªËØ(byte¡¢charµÈ),Èç¹ûÂú×ãÏÂÁÐÌõ¼þ£¬ÔòÈÏΪһ¸öBuffer'СÓÚ'ÁíÒ»¸öBuffer£º 1,µÚÒ»¸ö²»ÏàµÈµÄÔªËØÐ¡ÓÚÁíÒ»¸öBufferÖжÔÓ¦µÄÔªËØ ¡£ 2,ËùÓÐÔªËØ¶¼ÏàµÈ£¬µ«µÚÒ»¸öBuffer±ÈÁíÒ»¸öÏȺľ¡(µÚÒ»¸öBufferµÄÔªËØ¸öÊý±ÈÁíÒ»¸öÉÙ) boolean equals(Object ob); * µ±Âú×ãÏÂÁÐÌõ¼þʱ£¬±íʾÁ½¸öBufferÏàµÈ£º * ÓÐÏàͬµÄÀàÐÍ£¨byte¡¢char¡¢intµÈ£©¡£ * BufferÖÐÊ£ÓàµÄbyte¡¢charµÈµÄ¸öÊýÏàµÈ¡£ * BufferÖÐËùÓÐÊ£ÓàµÄbyte¡¢charµÈ¶¼Ïàͬ¡£ * ÈçÄãËù¼û£¬equalsÖ»ÊDZȽÏBufferµÄÒ»²¿·Ö£¬²»ÊÇÿһ¸öÔÚËüÀïÃæµÄÔªËØ¶¼±È½Ï¡£Êµ¼ÊÉÏ£¬ËüÖ»±È½ÏBufferÖеÄÊ£ÓàÔªËØ¡£ ByteBuffer asReadOnlyBuffer(); * Ó³Éä³öÒ»¸öÖ»¶ÁµÄ»º³åÇø,'ËùÓÐÊý¾Ý,ÊôÐÔ¶¼ÊÇÒ»ÑùµÄ'(¿ÉÒÔÐÞ¸ÄÊôÐÔ,²»ÄÜÐÞ¸ÄÊý¾Ý) * Õâ¸ö»º³åÇøµÄÊý¾Ý½ö½öÖ»»á¸úËæÄ¸ÌåµÄÐ޸ĶøÐÞ¸Ä * ËûÃǵÄÊôÐÔÖµ¶ÀÁ¢ ByteBuffer duplicate(); * ¸´ÖƳöÀ´Ò»¸ö»º³åÇø,'ËùÓÐÊý¾Ý,ÊôÐÔ¶¼ÊÇÒ»ÑùµÄ'(¿ÉÒÔÐÞ¸ÄÊôÐÔºÍÊý¾Ý) * ÐÞ¸ÄÊý¾Ý¶ÔË«·½¶¼ÊǿɼûµÄ * Èç¹ûÖ÷ÌåÊÇÖ»¶Á,ÄÇô¸±ÌåÒ²ÊÇÖ»¶Á * ËûÃǵÄÊôÐÔÖµ¶ÀÁ¢ ByteBuffer slice(); * ¸´ÖƳöÀ´Ò»¸öÐµĻº³åÇø,(¿ÉÒÔÐÞ¸ÄÊôÐÔºÍÊý¾Ý) * ÊôÐÔÐÞ¸Ä pos = 0; lim = 'Ô­bufferµÄlimit'; cap = 'Ô­bufferµÄlimit' * ÐÞ¸ÄÊý¾Ý¶ÔË«·½¶¼ÊǿɼûµÄ * Èç¹ûÖ÷ÌåÊÇÖ»¶Á,ÄÇô¸±ÌåÒ²ÊÇÖ»¶Á * ËûÃǵÄÊôÐÔÖµ¶ÀÁ¢ boolean hasArray(); * 'δ֪' int arrayOffset(); * 'δ֪' ByteOrder order(); * »ñȡдÈë˳Ðò ByteBuffer order(ByteOrder bo)£» * ÉèÖÃдÈë˳Ðò int hashCode(); String toString(); int getInt(); * Ò»´ÎÐÔ¶ÁÈ¡Ëĸö×Ö½Ú,×é³ÉÒ»¸ö int Êý¾Ý * Ö¸Õë»áÏòÇ°ÒÆ¶¯4 char getChar(); char getChar(int index); double getDouble(); double getDouble(int index); float getFloat(); float getFloat(int index); int getInt(int index); long getLong(); long getLong(int index); short getShort(); short getShort(int index); ByteBuffer putInt(int value); * °Ñ int Öµ´æÈë,Ò»´ÎÐÔÉèÖÃËĸö×Ö½Ú * Ö¸Õë»áÏòÇ°ÒÆ¶¯4 ByteBuffer putChar(char value); ByteBuffer putChar(int index, char value); ByteBuffer putDouble(double value); ByteBuffer putDouble(int index, double value); ByteBuffer putFloat(float value); ByteBuffer putFloat(int index, float value); ByteBuffer putInt(int index, int value); ByteBuffer putLong(int index, long value); ByteBuffer putLong(long value); ByteBuffer putShort(int index, short value); ByteBuffer putShort(short value); CharBuffer asCharBuffer(); DoubleBuffer asDoubleBuffer(); FloatBuffer asFloatBuffer(); IntBuffer asIntBuffer(); LongBuffer asLongBuffer(); ShortBuffer asShortBuffer(); # ¾²Ì¬ ByteBuffer allocateDirect(int capacity); * ´´½¨Ö¸¶¨´óСµÄ»º³åÇø,·ÇJVMÄÚ´æ,Ö±½ÓʹÓÃϵͳÄÚ´æ. * 'ÔÚÊý¾ÝÁ¿´ïµ½Ò»¶¨´óСµÄʱºò²Å»áÌáÏÖ³öËÙ¶ÈÉϵÄÓÅÊÆ' ByteBuffer allocate(int capacity); * ´´½¨Ö¸¶¨´óСµÄ»º³åÇø * '¸Ã»º³åÇøÊÇÓÉJVM½øÐзÖÅä' ByteBuffer wrap(byte[] array); * °ÑÒ»¸ö×Ö½ÚÊý°üװΪ ByteBuffer * ÕâÀïµÄbytesºÍ»º³åÇøÓõÄÊÇÒ»¿éÄڴ棬Èç¹ûÐ޸Ļº³åÇøµÄÊý¾ÝÊý×éµÄÊý¾ÝÒ²·¢Éú±ä»¯¡£ * po : 0 li : array.length ca : array.length ByteBuffer wrap(byte[] array, int offset, int length); * °ÑÒ»¸ö×Ö½ÚÊý°üװΪ ByteBuffer,´Ó×Ö½ÚÊý×éµÄ offset ¿ªÊ¼»ñÈ¡ length ¸öÊý¾Ý´æÈë * ÕâÀïµÄbytesºÍ»º³åÇøÓõÄÊÇÒ»¿éÄڴ棬Èç¹ûÐ޸Ļº³åÇøµÄÊý¾ÝÊý×éµÄÊý¾ÝÒ²·¢Éú±ä»¯¡£ * '¸ÃAIP½ö½öÊÇΪÁËÐÞ¸ÄlimitµÄλÖÃ' * po : 0 li : length ca : array.length