1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
//数组拷贝的方法:System.arraycopy()
/*
查看源代码文件中的System类的arraycopy方法:
这是我的安装目录:D:\OpenSourceSoftware\Java\jdk1.7.0_80\src\java\lang\System.java
System.java文件中的arraycopy方法代码如下:
public static native void arraycopy(Object src, int srcPos,
Object dest, int destPos,
int length);
看看参数
Object:java语言中的根类,是老祖宗类,顶级父类,所有类都是他衍生出来的,Object可以表示任意数据类型
关于native修饰符:
有没有注意到该方法是没有方法体的,该方法使用了native修饰符(也称为本地方法),意思就是
该方法的底层使用了C/C++语言实现了,那么java直接调用其他语言编写好的功能
参数说明:
Object src : 原数组
int srcPos : 从元数据的起始位置开始
Object dest : 目标数组
int destPos : 目标数组的开始起始位置
int length : 要copy的数组的长度
查阅API文档(java的帮助文档)
*/
class
ArrayCopyDemo
{
public
static
void
main(String[] args)
{
byte
[] srcBytes =
new
byte
[]{
2
,
4
,
0
,
0
,
0
,
0
,
0
,
10
,
15
,
50
};
byte
[] destBytes =
new
byte
[
5
];
printArray(destBytes);
System.arraycopy(srcBytes,
0
,destBytes,
0
,
4
);
printArray(destBytes);
}
static
void
printArray(
byte
[] arr)
{
String ret =
"["
;
for
(
int
i=
0
; i<arr.length; i++)
{
ret = ret + arr[i];
if
(i != arr.length -
1
)
{
ret = ret +
", "
;
}
}
ret = ret +
"]"
;
System.out.println(ret);
}
}
|
本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/2055215