memcpy+;指针+;JAVA
我已经看到,没有任何问题可以具体回答这一参数组合: Java+memcpy+指针 我的C/C++背景可能会使我产生偏见。 在C++中我可以做到这一点:memcpy+;指针+;JAVA,java,arrays,memcpy,Java,Arrays,Memcpy,我已经看到,没有任何问题可以具体回答这一参数组合: Java+memcpy+指针 我的C/C++背景可能会使我产生偏见。 在C++中我可以做到这一点: memcpy (Destination, Source, length_data); 目标和源可以是两个内存位置。 有没有一种方法可以在Java中使用基元类型的数组来实现这一点 所有的实现 Arrays.copyOf Arrays.copyOfRange 我们基本上完成了一半的工作。从某种意义上说,您可以指定数据量或给定范围,但它们都返回一个
memcpy (Destination, Source, length_data);
目标和源可以是两个内存位置。
有没有一种方法可以在Java中使用基元类型的数组来实现这一点
所有的实现
Arrays.copyOf
Arrays.copyOfRange
我们基本上完成了一半的工作。从某种意义上说,您可以指定数据量或给定范围,但它们都返回一个数组,而不会修改现有数组
提前感谢。请参见Java没有C/C++那样的指针
存在System.arraycopy();查看一下javadocs。您可以使用 如果src和dest参数引用同一个数组对象,则 复制的执行方式与srcPos至位置处的组件相同 srcPos+length-1首先复制到长度为的临时数组中 组件,然后复制临时数组的内容 位置destPos到destPos+目的地的长度-1 数组
当然,考虑到Java中缺少指针,这不是一个完美的模拟操作。谢谢。您完全回答了我的问题。我不建议您这样做,但有一个等效的不安全。copyMemory()可用于将任意长度的字节从地址/对象复制到地址/对象。谢谢Peter。我指的是数组的副本。但是您的注释对一般的memcpy操作非常有用。数组是对象,您可以调用Unsafe.arrayBaseOffset()来获取第一个值的偏移量,并调用arrayIndexScale(类)来查找每个元素的大小。