接下节:day014:Java数组知识点(2)_ZQyyds:)的博客-CSDN博客
一、数组的介绍
1.数组(array)是一种容器,用来存储同种数据类型的多个值。建议:容器的类型,和存储的数据类型保持一致。
2.数组的定义格式:
(1)数据类型[ ] 数组名 eg: int[ ] arr;
(2)数据类型 数组名[ ] eg: int arr[ ];
3.数组的动态初始化:
所谓初始化:就是在内存中,为数组容器开辟空间,并将数据存入容器的过程。
动态初始化:初始化时手动指定数组长度,由系统为数组分配初始值。
格式: 数据类型 [ ] 数组名=new 数据类型[ 数组长度];
eg:int [ ] arr= new int [10]; 即定义一个int型数组长度为10(即:可存储10个int类型的整数)的数组。
4.数组元素的访问:
(1)数组内存地址的访问方式
格式:数组名(即System.out.println(arr);运行即可得到内存地址;这个arr数组名 记录的就是数组的内存访问地址)
(2)数组内部保存的数据的访问方式:
格式:数组名[索引] (即arr[0]或arr[1]等等;索引是数组容器中空间的编号,从0开始。作用:访问数组容器中的空间位置)
5.内存分配:
Java中内存分配有五种:
栈内存:方法运行时进入的内存,局部变量都存放于这块内存当中。
堆内存:new出来的全部内容都会进入堆内存,并且会存在地址值。
方法区:字节码文件(.class文件)加载时进入的内存。
本地方法栈:调用操作系统相关资源。
寄存器:交给CPU去使用。
6.数组的静态初始化:
静态初始化:初始化时,就可以指定数组要存储的元素,系统还会自动计算出数组长度。
格式:数据类型[ ] 数组名=new 数据类型[ ]{数据1数据2,数据3,...};
简化格式:数据类型[ ] 数组名={数据1,数据2,数据3...};
eg:int[ ] arr=new int[ ]{1,2,3}; 即定义一个int型数组长度为3(即:可存储3个int类型的整数)的数组。
7.数组的动、静态初始化的对比:
A.区别:
(1)动态初始化:手动指定数组长度,由系统给出默认初始化值
(2)静态初始化:手动指定数组元素,系统会根据元素个数,计算出数组的长度
B.使用场景:
(1) 动态初始化:只明确元素个数,不明确具体数值。
(2)静态初始化:需求中已经明确了要操作的具体数据。
8.数组操作的两个常见小问题:
(1)索引越界:访问了数组中不存在的索引,造成索引越界问题。
(2)空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常
9.数组常见操作:
(1)数组遍历:将数组中的所有数据取出来,是指取出数据的过程,而不是单单指将数据打印出来。
(注:动态获取数组元素的个数:数组名.length,例如:arr.length)