黑马程序员=======数组使用总结

来源:互联网 发布:mac 新建智能文件夹 编辑:程序博客网 时间:2024/06/06 20:48

在学习Java的这段时间里,我深切的感到了数组的重要性,他可以培养编程思想,几乎从开始一直到培训结束一直在用,现在有时间正好总结一下。。。。。

1,数组概述及格式
      • 数组:同一种类型数据的集合。其实数组就是一个容器。 •只要是容器,就得重点掌握。
      • 数组的好处 •可以自动给数组中的元素从0开始编号,方便操作这些元素。
2,数组的定义格式
      •A:当不明确数组中的元素时,动态初始化 举例 : int[] arr = new int 3; arr[0] = 3;B:当明确数组中的元素时,静态初始化 举例 : int[] arr = new int[]{1,2,3,4,5}; int[] arr =  {1,2,3,4,5};
      •什么时候使用数组? •当要操作的同种数据类型的数据是多个的时候,你就得想着先把这些数据用数组进行存储。

数组的内存图
      •A:栈 •存储的是局部变量(在函数中定义的变量)。
      •变量被使用完后,立即自动释放。
      •B:堆 •存储的是实体(数组和对象)。
      •实体:new出来的东西,可以存放很多数据的东西。
      • 堆内存数据的特点 •每个实体都有内存地址
      • 堆内存中的变量都有默认初始化值 •int --> 0
      •double --> 0.0
      •boolean --> false
      •char --> '\u0000' 空字符,unicode编码。
      •当实体不在被使用的时候,会在jvm空闲的时候,通过java垃圾回收机制使其自动释放。

      •C:方法区 后面讲。(static)
      •D:本地方法区 调用是Windows系统底层资源,我们不用考虑。
      •E:寄存器 和CPU相关。我们不用考虑。
3,数组的常见问题
      •A:当你访问到数组中的最后一个元素时,还想继续访问,这个时候,会发生角标越界异常。 •ArrayIndexOutOfBoundsException

      举例 int[] arr = new int 3; System.out.println(arr 3);• B:当数组不在指向某个实体时,你还继续访问,就会发生空指针异常。 •NullPointerException
      举例 int[] arr = new int 3; arr = null; System.out.println(arr 1);
4,数组的操作

      •数组遍历
      •数组获取最值
      •基本查找
      •数组的参数传递
5,数组的练习
      •数组反转
6,数组的应用
      •查表法(星期的示例)
7,二维数组概述和定义
      • 格式1:int[][] arr = new int 3 2; •A:定义了名称为arr的二维数组
      •B:二维数组中有3个一维数组
      •C:每一个一维数组中有2个元素
      •D:一维数组的名称分别为arr[0], arr 1, arr 2 •arr:二维数组名
      •arr 1:二维数组中的第二个一维数组名
      •arr 1 1:二维数组中的第二个数组的第二个元素
      •E:给第一个一维数组1脚标位赋值为78写法是:arr[0] 1 = 78;
      •格式2:int[][] arr = new int 3[]; •A: 二维数组中有3个一维数组
      •B: 每个一维数组都是默认初始化值null
      •C: 可以对这个三个一维数组分别进行初始化 •arr[0] = new int 3;
      •arr 1 = new int 5;
      •arr 2 = new int 7

      •格式3:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}};arr 2.length •A:二维数组有3个一维数组。
      •B: •第一个一维数组有3个元素
      •第二个一维数组有2个元素
      •第三个一维数组有4个元素

二维数组的应用
      •二维数组的遍历
      •int[][] arr2 = new int 2 3;
        public static void printArray2(int[][] arr2){
                     for(int i=0; i<arr2.length; i++){
                                  for(int j=0; j<arr2 i.length; j++){
                                              System.out.print(arr2ij+" "); }
                                  System.out.println(); }}
      •二维数组的应用
      •求一年的销售总额。public static void printArray2(int[][] arr2){
                                                                                            int sum = 0;
                                                                                            for(int i=0; i<arr2.length; i++) {
                                                                                                    for(int j=0; j<arr2i.length; j++){
                                                                                                           sum = sum + arrij; }
                                                                                                    System.out.println("sum =" + sum);
                                                                                                  }}

学习数组思路要清晰,嵌套3,4也很正常,实在不会就画画图,这就是我对数组的理解。。。

0 0