黑马程序员技术交流社区

标题: 蒙圈的数组 [打印本页]

作者: wubo46    时间: 2016-5-15 21:21
标题: 蒙圈的数组
数组(array)定义:数组是储存同一类型多个元素的集合,也可以看作一个容器
                                  数组可以储存基本数据类型,也可以储存引用数据类型
                        格式:数组类型 [] 数组名 = new + 数据类型[数组长度];
                                  int [] arr = int [5];
                                  左边: int代表数组类型;
                                                 [] 几个[]代表几维数据;       
                                                 arr 代表数组名,合法的标识符
                                  右边: new 代表创建新的实体或对象
                                                 int 代表数据类型
                                                 [5] 代表数组长度

数组的初始化定义:为数组开辟连续的空间,并未每一个数组赋值

                        分类:1.动态初始化,指定长度,系统给出初始化值        int [] arr = new [5];
                                                  格式:数组类型 [] 数组名 = new + 数据类型[数组长度];
                                  2.静态初始化,给出初始化,系统指定长度        int [] arr = {1,2,3};
                                                  格式:数组类型 [] 数组名 = new + 数据类型[] {元素1,元素2,......};声明和赋值不需要在同一行
                                          简化格式: 数组类型 [] 数组名 = new {数组长度};简写形式,声明和赋值必须在同一行
                注意事项:不允许动静结合

                常见问题:1.数组索引越界异常,Array Indexout of Bounds Exception
                                    当你访问了不存在的索引,就会出现索引异常
                                    原因:你访问了不存在的索引
                                  2.空指针异常,NullPointer Exception
                                    arr = null 当数组赋值null 再去访问元素,就会出现空指针异常
                                    原因:数组已经不再指向内存堆,而你还用数组去访问元素


        默认初始化值:整数类型是0
                                  浮点型是0.0
                                  布尔类型是false
                                  字符类型是char是'\u0000',因为char在内存中占2个字节,
                                  \u0000,每一个0代表的是16进制的0,四个0就是代表16个二进制位
  java中内存分配:栈--储存局部变量
                                                        局部变量:定义在方法声明上和方法中的变量
                                  堆--存储new出来的数组或对象
                                  方法区--相当于代码区--面向对象说
                                  本地方法区--和系统有关
                                  寄存区--给CPU使用
                数组遍历:输出数组的每一个元素
               
                数组属性:arr.length表示数组的长度

                最大索引:arr.length - 1

                        举例:for (i = 0;i < arr.length ;i++ ) {
                                        System.out.println(arr [i]);
                                }
                                public static void print(int[]        arr) {
                                        for (int i = 0;i < arr.length ;i++ ) {
                                        System.out.print(arr [i] + " ");
                                }
                                }
                取最大值:public static void print(int[] arr,int vallu) {
                                        int arr[0] = vallu;
                                        for (int i = 0;i < arr.length ;i++ ) {
                                                if (arr[i] > vallu) {
                                                        vallu = arr [i];
                                                }
                                }
                                        System.out.println(vallu);
                                }

                               

                       
                        动态初始化
                                int [] arr = new int [5];   相当于在内存中开辟连续的5个地方,存储int类型的值






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2