优势:基本类型是在栈内存中操作的,而对象则是在堆内存中操作的,栈内存的特点是速度快,容量小,堆内存的特点是速度慢,容量大(从性能上来讲,基本类型的处理占优势)
缺点:Java中的数组是定长的,一旦经过初始化声明就不可改变长度,这在实际使用中非常不方便。
解决方法:数组变长。
import java.util.Arrays;
//,基本类型是在栈内存中操作的,而对象则是在堆内存中操作的,
///栈内存的特点是速度快,容量小,堆内存的特点是速度慢,容量大
//(从性能上来讲,基本类型的处理占优势)
public class test {
public static void main(String[] args) {
int[] datas = { 1, 2, 3, 4, 5, 6, 7 };
System.out.println(sum(datas));// ~28
String str[] = new String[2];
// 初始化
str[0] = "a";
str[1] = "b";
System.out.println("str.str[]=" + str.length);// ~str.str[]=2
str = extendsCapacity(str, 3);
str[2] = "c";
System.out.println("str.str[]=" + str.length);// ~str.str[]=3
}
// 求和
public static int sum(int[] datas) {
int sum = 0;
for (int i = 0; i < datas.length; i++) {
sum += datas[i];
}
return sum;
}
/**
* 数组长变
*
* @param datas
* 数组
* @param newLength
* 新长度
* @return
*/
public static <T> T[] extendsCapacity(T[] datas, int newLength) {
// 不能是负值
newLength = newLength < 0 ? 0 : newLength;
// 生成一个新数组,并拷贝原值
return Arrays.copyOf(datas, newLength);
}
}