1.数组是引用类型的数据
定义语法:int[] a;
赋值:int[] a={1,2,3,4,5};只在初始化的时候使用
int[] a=new int[5];(数组中未初始化,元素的值是元素类型的默认值)
int[] a=new int[] {1,2,3,4,5};
int[] a=null; 只定义了一个数组类型的引用变量,没有数组变量找不到数组
2.对数组的操作参考C语言,java中有一个属性length
3.数组的遍历
int[] a={1,2,3,4,5}
for(int i=0;i<a.length;i++)
{
a[i];
}
for(int element:a)
{//foreach形式(老版本java不支持)
element;
}
4.引用类型是什么?
1)引用类型是个线索,用来找到堆中真正数据
2)引用类型也是值传递,形参的改变不会影响实参
5.理解什么是引用?
1)引用是用来找到实际对象的线索
2)java内存中有3个区域
1)栈区 2)堆区3)方法区
四种变量:
形参 栈
局部变量 栈
属性 堆
静态属性 方法区
6.一些操作的理解
int[] a={1,2,3,4,5};
int[] b=a; //b也指向的数组对像
1)b={11,12,13};//b重新指向新的数组对象,不会影响a和a指向的对象
2)b[0]=100;//改变的是b指向的数组对象的内容,会影响a
7.方法调用过程中,java都是值传递,所有参数的改变都不会·影响实参
8.JDK支持的一些操作
java.util.Arrays包先导入才能使用
import java.util.Arrays;
java.lang.System包
Arrays.fill(int[] a,int v) 将指定的int值分配给指定的int数组的每个元素
Arrays.copyOf(int[] a,int newLength) }复制指定的数组,用零截取或填充 Arrays.copyOfRange(int[] a,int from,int to)将指定数组的指定范围复制到新数组中 Arrays.toString(a)返回指定数组的内容的字符串表示形式
Arrays.binarySearch(int[] a,int v)使用二叉搜索算法搜索指定的int数组的指定值
学会自己查文档!!
数组a中的内容是什么?
public static int[] method1(int[] a){
a=new int[]{12,13,14,15,16};
}
public static int[] method2(int[] a){
a[0]=10;
}
public static int[] method3(int[] a){
int[] b=a;
b=new int[]{10,11};
}
public static void main(String[] agrs){
int[] a={1,2,3,4,5};
method1(a);//12,13,14,15,16
method2(a);//10,2,3,4,5
method3(a);//1,2,3,4,5
}
java中垃圾回收(Garbade Collection [GC])
谁是垃圾?没有使用价值-----没有引用指向的对象(数组)
多维数组:int[][] a={//二维数组的类型是引用类型
{1,2,3},
{4,5},
null
}
java中的多维数组存的元素类型是引用类型,所以有阶梯状