java memcpy是什么,讓我們一起了解一下?
memcpy是由src內存區域復制count個字節到dest所指內存區域。memcpy也是C和C++使用的內存拷貝函數,和在Java中使用一樣,由src指向地址為起始地址的連續n個字節的數據復制到以destin指向地址為起始地址的空間內。
而在JAVA中memcpy一般用二字節表示一個字母。在做通訊交易的情況下,總會傳很多報文,而報文總會時不時的包含一些結束符如'0x00',但是用常規的方式截取如?new String(buf, pos + 2, length)來獲得字符串,往往會出錯(因為其遇到一些特殊的字符如結束符,會在計算字符串的操作出錯)。但是用?new String(buf, pos + 2, length,"ASCII"),可以解決。
注意兩點:
1、source和destin所指內存區域不能重疊,函數返回指向destin的指針。
2、與strcpy相比,memcpy并不是遇到’\0’就結束,而是一定會拷貝完n個字節。
memcpy在java的簡單實現,代碼如下:
public?static?void?memcpy(Integer?src,?ByteBuffer?buffer,?Integer?size){ if(size?>?4){ size??=?4; } for(int?i?=?0;?i?>(3-i))*8)?&?0xff);; buffer.put(temp); } }
以上就是小編今天的分享了,希望可以幫助到大家。