1.保存数据
public static void main(String[] args) {
int[] array1 = new int[]{1, 2, 3};
for (int i = 0; i < array1.length; i++) {
System.out.println(array1[i] + "");
}
}
1 2 3
2.作为函数的参数
1.参数传基本数据类型
public static void func(int x) {
x = 10;
System.out.println("x=" + x);
}
public static void main(String[] args) {
int num = 0;
func(num);
System.out.println("num=" + num);
}
x=10 num=0
发现在func方法中修改形参 x 的值, 不影响实参的 num 值.
2.参数传数组类型(引用数据类型)
public class Test1 {
public static void func(int[] array){
array[0]=10;
System.out.println("array[0]="+array[0]);
}
public static void main(String[] args) {
int[] a=new int[]{1,2,3};
func(a);
System.out.println("a[0]="+a[0]);
}
}
array[0]=10 a[0]=10
发现在func方法内部修改数组的内容, 方法外部的数组内容也发生改变。
因为数组是引用类型数据,按照引用类型进行传递,是可以修改其中存放的内容的。
总结:所谓的"引用"本质上只是存了一个地址,java将数组设定成引用类型,这样的话后续进行数组参数传参的时候,其实只是将数组的地址传入函数形参中,避免了对整个数组的拷贝。
3.作为函数的返回值。
package mjh.week.day3;
public class Test1 {
//用数组来计算斐波拉契数列
public static int[] fit(int n) {
if (n <= 0) {
return null;
}
int[] array = new int[n];
array[0] = array[1] = 1;
for (int i = 2; i < n; i++) {
array[i] = array[i - 1] + array[i - 2];
}
return array;
}
public static void main(String[] args) {
int[] array = fit(10);
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
1 1 2 3 5 8 13 21 34 55