0%

数组相关介绍

1. 数组的概述

数组是指一种容器,可以用来存储同种类型的多个值,数组容器再存储数据的时候,需要结合隐式转换考虑。

定义

1
2
3
4
//格式1:
数据类型 [ ] 数组名
//格式2:
数据类型 数组名[ ]

初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器中的过程。

  1. 静态初始化: 数据类型[ ] 数组名 = new 数据类型[ ]{元素1,元素2,元素3…};

    简写样式: 数据类型[ ] 数组名 = {元素1,元素2,元素3…};

  2. 动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。

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

    在创建的时候,由我们自己指定数组的长度,有虚拟机给出默认的初始化值。

    数组默认初始化值的规律:

    ​ 整数类型的默认初始值为0

    ​ 小数类型的默认初始值为0.0

    ​ 字符类型的默认初始值为’/u0000’空格

    ​ 布尔类型的默认初始值为false

    ​ 引用数据类型的默认初始值为null

  3. 动态初始化和静态初始化的区别

    | 动态初始化 | 静态初始化 |
    | :————————————————————————: | :—————————————————————————: |
    | 只明确元素个数,不明确具体数值,推荐使用动态初始化 | 需求中已经明确了要操作的具体数据,直接静态初始化即可 |

2.数组的地址值和元素访问

地址值:表示数组在内存中的位置([I@4eec7777)

​ [ :表示当前是一个数组

​ I :表示当前数组里面的元素都是int类型

​ @:表示一个间隔符号。固定格式

​ 4eec7777:数组真正的地址值(16进制)

1
[I@4eec7777

数组元素访问:

​ 格式: 数组名[索引],数组的索引从0开始

1
int a = arr[0];

3.数组的遍历

数组遍历:将数组中所有的内容取出来,取出来之后可以进行打印,判断,求和…………

遍历是指取出数据的整个过程,不要局限的理解为,遍历就是打印。

获取数组的长度:数组名.length

拓展:Idea中自动地快速生成数组的遍历方式:数组名.fori回车

4.数值中常见问题

1.索引越界问题(最小索引:0,最大索引:数组长度-1)

1
2
3
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 50 out of bounds for length 50
at com.itheima.array.ArrayDemo07.main(ArrayDemo07.java:10)
// Exception(异常),ArrayIndexOutOfBoundsException(数组索引超出范围异常)--访问了不存在的索引

5.数组的内存图

JAVA内存空间
栈:方法运行时使用的内存,比如main方法运行,进行方法栈中执行。
堆:存储对象或者数组,new来创建的,都存储在堆内存
方法区:存储可以运行的class文件
本地方法栈:JVM在使用操作系统功能时使用,与开发无关
寄存器:给CPU使用,和开发无关