数组,在任何语言中可以说没有什么区别,都是一系列数据的聚合。
连续内存空间结构。
存放在堆空间。
可以从三个方面来说明一下数组:
1.效率:在JAVA中,数组是一种效率最高的存储和随机访问对象引用序列的方式。
2.类型:数组是一种简单的线性序列,使得它对元素的访问效率极高。
3.保存能力:必须初始化,分配一段特定长度的内存空间,并且在它的生命周期中不能改变。
数组拷贝:尽量避免常用的赋值方式进行一块内存的复制,在C语言中,有memcpy很高的效率。在JAVA中,也有相关的方法:
String[] str = { "I", "love", "you", "more", "than", "I", "can", "say" };
String[] dest = new String[8];
/**
* @prama src :source
* @param srcPos
* :source的启示位置
* @param dest
* :destination
* @param destPos
* :启示位置
* @param length
* :不用解释
*/
System.out.println("start time:" + System.currentTimeMillis());
for (int i = 0; i < 5000000; i++)
System.arraycopy(str, 0, dest, 0, str.length);
System.out.println("end time:" + System.currentTimeMillis());
System.out.println("start time:" + System.currentTimeMillis());
for (int j = 0; j < 5000000; j++)
for (int i = 0; i < 8; i++)
dest[i] = str[i];
System.out.println("end time:" + System.currentTimeMillis());
start time:1411967397155
end time:1411967397184
start time:1411967397184
end time:1411967397232