1、有效的下标

  最小的下标是0,最大的下标是数组的元素个数-1

  编译器并不会检查你是否用了有效的下标

  但是如果运行的时候出现了无效的下标,可能会导致程序终止

2、定义数组变量

<类型>[] <名字> = new <类型>[元素个数];
    int[] grades = new int[100];
    double[] averages = new double[20];

  ·元素个数必须是整数

  ·元素个数必须给出

·元素个数可以是变量

3、数组成员

  length -->可以获得数组元素的数量

4、直接初始化数组

  ·new创建的数组会得到默认的0值

  ·int[] scores = {87,98,69,54,65,76,87,99};

  ·直接用大括号给出数组的所有元素的初始值

  ·不需要给出数组的大小,编译器会帮助我们数数

  ·如何得到数组的大小?length!

5、数组变量

  ·数组变量是素组的管理者而非数组本身

  ·数组必须创建出来然后交给数组变量来管理

  ·数组变量之间的赋值是管理权限的赋予

·数组变量之间的比较是判断是否管理同一个数组

6、复制数组

  ·必须遍历源数组将每个元素逐一拷贝给目的数组

7、遍历数组

  通常都是使用for循环,让循环变量i从0到<数组的length

  这样循环体内最大的i正好是数组最大的有效下标

    常见错误

    ·循环结束条件是<=数组长度

    ·离开循环后,继续用i的值来做数组元素的下标!

8、for-each循环(遍历数组)

  for(<类型><变量>:<数组>){

    ……

  }

  对于数组当中的每一个元素,取出来作为这个类型的变量

只能输出数组中的每一个元素,无法通过变量修改数组中的元素

 9、primes[cnt++]=x;

  以下代码为例

    int[] primes = new int[50];

    int x = 5;

    int cnt =0;

    primes[cnt++]=x;

  执行过后,primes[0]=x,cnt=1

10、二维数组

  ·int[][] a = new int[3][5];

  ·通常理解为a是一个三行五列的矩阵

11、二维数组的遍历

二维数组的遍历需要两层的for循环

1         for( int i=0; i<3; i++)
2         {
3             for( int j=0; j<5; j++)
4             {
5                 a[i][j] = i*j;
6                 System.out.print(a[i][j]);
7             }
8             System.out.println();
9         }

  ·a[i][j]是一个int

  ·表示第i行第j列上的单元,a[i,j]并不存在

12、二维数组的初始化

int [][] b = {
                {1,2,3,4},    
                {1,2,3},
        };

  ·编译器来数数

  ·每行一个{},逗号分隔

  ·最后的逗号可以存在,有古老的传统

  ·如果省略,表示补零