引用了类型的变量。
【1】 赋值
int []a=new int[5];
int []a={1,2,3};
如果数组中的元素没有初始化,元素的值就是元素类型的默认值。
eg: int 是0,boolean是false。
【2】内存分配
int []a=new int[]{1,2,3,4,5};
a在栈区,1,2,3,4,5在堆区。
【3】变量有四种
形参 栈 int[]a=null;
局部变量 栈 int[]a={1,2,3}
属性 堆 int[]b=a
静态属性 方法区
【4】注意
int[]a=[1,2,3};
int b[]=a;
b[0]=10;
这里a[0]=10;
public static void method(int []str){
str=new int[]{1,2,3};
}
public static void main(String[]args){
int []a={5,6,7};
method(a);
}
这里a还是指向5,6,7
引用的方法调用也是值传递,形参的改变不会影响实参。
引用类型是个线索,用来找到堆中真正的数据。
【5】垃圾是没有引用指向的对象
【6】引用是用来找到实际对象的线索
int[]a={1,2,3};
int b[]=a;//b也指向a所指向的对象
(1)int []b={4,5,6}//b指向新的数组对象,并不会改变a和a指向的对象
(2)int b[0]=100;//a也会受到影响
【7】一些常用方法
调用包 import java.util.Arrays;
import java.lang.System;
Arrays.copyOf(int []a,newlength);
Arrays.copyOfRange(int []a,int from ,int to); [from,to)
Arrays.fill(int []a,int v);
Arrays.toString(a);
System.arraycopy(原数组引用,源下标,目标数组引用,目标数组下标,长度);
【8】 多维数组
java中多维数组存的元素类型是引用,所以可以有阶梯状的数组。