Java基础00-数组9 1. 数组定义格式

1.1 数组概述

Java基础00-数组9_数组

1.2 什么是数组

Java基础00-数组9_数组_02

1.3 数组定义格式

推荐使用第一种格式,因为第一种格式读法比较顺畅。

Java基础00-数组9_数组_03

2. 数组初始化之动态初始化

2.1 数组初始化概述

Java基础00-数组9_数组_04

2.2 数组初始化方式

Java基础00-数组9_数组_05

2.3 动态初始化

Java基础00-数组9_数组_06

代码实例和详细解释:

Java基础00-数组9_数组_07

3. 数组元素访问

3.1 数组元素访问

Java基础00-数组9_数组_08

代码示例:

Java基础00-数组9_数组_09

直接输出数组名是不可以的,这样会输出出他的内存地址,想要输出数组中的值要按照序号输出,为什么是0那是因为我们还没有给数组赋值。

Java基础00-数组9_数组_10

4. 内存分配

4.1 Java中的内存分配

Java基础00-数组9_数组_11

int [] arr :在内存中会有一个区域专门用来存储它
new int [3] :在内存中也会有一个区域专门用来存储它,但是new 会为程序开辟内存空间,我们设置为3就会给我们开辟3个内存空间,并且添加默认值。

Java基础00-数组9_数组_12

new int[3] 会赋值给 int [] arr,int [] arr 会指向 new int[3]。

Java基础00-数组9_数组_13

这里的001并不是真实的内存地址

Java基础00-数组9_数组_14

数组1和2类似于此

Java基础00-数组9_数组_15

4.2 数组内存图(单个数组)

给数组中的元素赋值,输出的值就会改变。

Java基础00-数组9_数组_16

运行结果图:

Java基础00-数组9_数组_17

4.3 数组内存图(多个数组)

Java基础00-数组9_数组_18

4.4 数组内存图(多个数组指向相同)

Java基础00-数组9_数组_19

Java基础00-数组9_数组_20

Java基础00-数组9_数组_21

Java基础00-数组9_数组_22

arr的值赋给了arr2

Java基础00-数组9_数组_23

这样我们的两个数组就都指向了堆内存的相同地址,这就是(多个数组指向相同)。

Java基础00-数组9_数组_24

因为两个堆内存地址是相同的所以arr2也可以修改值。

Java基础00-数组9_数组_25

当两个数组指向同一个地址内存时,两个数组都是可以访问这个地址内存的,是通用的。

Java基础00-数组9_数组_26

5. 数组初始化之静态初始化

5.1 数组初始化之静态初始化

Java基础00-数组9_数组_27

推荐使用简化格式。

Java基础00-数组9_数组_28

6. 数组操作的两个常见小问题

6.1 数组操作的两个常见小问题

  1. 索引越界

Java基础00-数组9_数组_29

Java基础00-数组9_数组_30

  2. 空指针异常

   把null赋值给数组arr

Java基础00-数组9_数组_31

把null赋给arr,arr就变为了空值,就会和堆内存地址断去关联。

Java基础00-数组9_数组_32

如果我们再去访问原来的堆内存的话就还报错,因为它找不到。

Java基础00-数组9_数组_33

 Java基础00-数组9_数组_34

 Java基础00-数组9_数组_35

7. 数组常见操作

7.1 遍历

按照原来的方法一个一个的输出太过麻烦,所以我们就用到了遍历。

Java基础00-数组9_数组_36

可以看到每次输出索引都会加一,所以我们利用循环产生0-4。

Java基础00-数组9_数组_37

for循环遍历

Java基础00-数组9_数组_38

7.2 获取数组元素数量

如果数组的个数有很多,我们该怎么获取数组的元素个数那?

Java基础00-数组9_数组_39

Java中的length,就可以获取数组的个数。

Java基础00-数组9_数组_40

 Java基础00-数组9_数组_41

 Java基础00-数组9_数组_42

7.3 获取最值

此方法也叫打擂台方法,max与其他的值比较,赢了就继续站擂台,输了下去,让赢的站擂台,一直把所有的值都比较完。

Java基础00-数组9_数组_43

代码示例:

Java基础00-数组9_数组_44

输出:

Java基础00-数组9_数组_45