1、数组

        数组是一种存储多个相同类型的数据的容器;

2、数组定义格式:数据类型[ ] 数组名; eg. int [ ] arr;

3、数组初始化

        数组初始化是为数组容器开辟存储空间

       动态初始化+静态初始化

  • 动态初始化:

                明确数组长度,但没有指定元素内容,元素有默认值

                格式:数据类型 [ ] 数组名=new 数据类型 [数组长度];

                数组类型变量    Eg. Int [ ] arr =new int[6]

                内存地址:[I@10f87f48

                [ :数组类型

                I :数据类型

                @:分隔符

                10f87f48:十六进制内存地址(hash值,根据内存地址值生成)

  • 静态初始化:

                初始化时指定每个数组元素的初始值,由系统决定数组长度。

                格式: int [ ] arr =new int [ ] {1,2,3};

                简化: int [ ] arr = {1,2,3};

4、数组元素访问:

        数组变量访问方式:格式:数组名

        数据内部保存的数据访问方式:格式:数组名[索引]

        数组动态初始化默认值:

整数:int

0

浮点数:double

0.0

布尔:boolean

false

字符:char

空字符

引用数据类型:

null

5、数组内存分配

        栈内存:方法运行时,进入的内存,局部变量都存放于这块内存中;

        堆内存:new出来的内容都会进入堆内存,并且会存在地址值;

        方法区:字节码文件(.class文件)加载时进入的内存;

        本地方法栈:调用操作系统相关资源;

        寄存器:交给CPU去使用

  • 数组变量中存储的是该数组在堆内存开辟空间的首地址值,打印是地址值
  • 在(包括但不限于main方法)中的变量都是局部变量,局部变量都在栈内存中

 6、常见问题:

        数组索引越界异常------索引对应的元素不存在

        空指针异常-------------数组不再指向堆内存的数据

7、数组排序

        使用 Arrays.sort(数组名) 语法对数组进行排序,排序规则是升序。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐