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 < size; i++){ byte temp = (byte)(((src>>(3-i))*8) & 0xff);; buffer.put(temp); } }
以上就是小编今天的分享了,希望可以帮助到大家。