首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

怎样使用算法实现API中的arraycopy方法,该怎么解决

2012-03-03 
怎样使用算法实现API中的arraycopy方法请问怎样使用算法实现API中的arraycopy方法啊要求使用int型数据就行

怎样使用算法实现API中的arraycopy方法
请问怎样使用算法实现API中的arraycopy方法啊要求使用int型数据就行了,先提前谢谢各位啦!!!

[解决办法]
你可以看它的源代码啊
[解决办法]
System.arraycopy()方法是native的,也就是说是用本地相关的代码实现的,比如C++。
用C++的实现并不是简单的分配一个内存空间,然后拷贝元素。还要验证参数的有效性,类型验证,转换,将C++中的数组类型转成Java中的数组对象,添加对象头,考虑GC点,GC点处的oop是否采用压缩的处理也是不一样的等...
总之,就是很复杂。
你有兴趣可以下载OpenJDK的代码来研究研究。
点这里下载OpenJDK 7源码
点这里下载OpenJDK 8源码
OpenJDK和Sun/Oracle的JDK几乎是一样的
最简单的一个实现你可以用for循环:
// 只是个伪代码:具体你还要做类型转换,将Object转成对应的数组类型,做些简单的类型检查
// 如果src中的元素类型和dest的类型不一样,要跑出异常
// 如果src或者dest的长度不够长,也要抛出异常
for(int i = srcPos, i < length; i++) {
dest[destPos++] = srcPos[i];
}

[解决办法]

热点排行