数组

数组的特征:

          1)数组是相同类型数据的有序集合 

          2)数组会在内存中开辟一块连续的空间,每个空间相当于之前的一个变量,称为数组的元素

          3)数组中可以存储基本数据类型,可以存储引用数据类型,对于一个数组而言,数组的类型是固定的,只能是一个

          4)元素的表示:数组名[下标或者索引]   eg: array[0];

          5)数组的索引是从0开始的

          6)每个数组元素都有默认值, eg:int 0;double 0.0; boolean false;String null

          7)数组的元素是有序的,指索引的顺序

          8)数组的长度是固定的,一经定义,不能再发生变化,数组的长度:数组的标识符.length

数组的语法:

一)一维数组

          1)声明数组变量:int [] scoreArr; //在栈中声明了一个数组变量,值不确定,还没有分配空间;也可以int scoreArr [] 来声明一个数组变量。不建议

          2)分配空间:scoreArr=new int [10];//在堆内存中分配了10个连续的空间,每个元素时int类型,4个字节,元素默认值为0,并且把首地址赋值栈内存的scoreArr

          3)合并声明和分配空间 int [] scoreArr=new int [10];

          4)数组的静态初始化:声明,分配空间和赋值合并在一起,给出初始化值,由系统决定长度             int [] scoreArr=new int[]{19,29,34,22,33,12,52};

                int [] scoreArr={19,29,34,22,33,12,52};

          5)数组的动态初始化:分开写,单独赋值,只指定长度,由系统给出初始化值

                int [] scoreArr=new int[10];

                scoreArr[0]=39;

二)二维数组

 1)等长二维数组:

         定义:int [][]  scoreArr = new int[2][3];定义了一个一维数组,长度为2,每个元素是一个一维数组,长度为3

             数组元素赋值:  scoreArr[0][0]=199;     scoreArr[0][1]=20;    scoreArr[0][2]=600; 

                                        scoreArr[1][0]=299;     scoreArr[0][1]=78;    scoreArr[0][2]=56;  

2)不等长二维数组:


          定义:  int [][] scoreArr = new int[3][];
                       scoreArr[0] = new int[4];
                       scoreArr[1] = new int[3];
                       scoreArr[2] = new int[2];
          赋值:int [] [] scoreArr=new int [] []{{100,90,80,50},{100,56,56},{29,45}};

                    int [] [] scoreArr={{100,90,80,50},{100,56,56},{29,45}};

                      

数组的内存分配图:

         栈内存:stack 存放数组名,存放局部变量,变量没有默认值,方法执行完毕立刻释放内存,是一种先进后出的结构

         堆内存:heap存放数组元素的内容,每个元素都有默认值,方法执行完毕后不会立刻释放资源,由垃圾回收器负责回收,但回收取的时间不确定

                                                           等长二维数组内存分配图

数组的优缺点:

          优点:一个数组可以存储多个元素

                    按照索引查询元素效率高

          缺点:按照内容查找元素,效率低下

                    进行元素的添加和删除时,需要大量的移动元素

                    长度固定

 

      

posted @ 2018-05-20 19:31  Erie  阅读(82)  评论(0编辑  收藏  举报