java memcpy

作者:原创时间:2022-04-02
文档

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);
}
}

以上就是小编今天的分享了,希望可以帮助到大家。

显示全文
java merge java method java mian java mina java mkdir java mmap java mockito java modelandview java module java monad java mono java mqtt java multiset java mvvm java mybatisplus java namespace java newinstance java nextint java nextline java nexus java matrix java matlab java math.ceil java mapping java malloc java main java logstash java logging java localtime java locale java list.contains java list.add java linq java linklist java leveldb java lamada java kudu java kmeans java keystore java kafka