今日整理:
1 什么是数组?数组的定义有哪几种格式?
答:
数组概念: 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。
数组的定义方式有三种:
#方式一:(创建动态数组)
*格式:
数组存储的数据类型[ ] 数组名字 = new 数组存储的数据类型[ 长度 ];
*数组定义格式详解:
-数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
-[ ] : 表示数组。
-数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。
-new:关键字,创建数组使用的关键字。
-数组存储的数据类型: 创建的数组容器可以存储什么数据类型。
-[ 长度 ]:数组的长度,表示数组容器中可以存储多少个元素。
-注意:数组有定长特性,长度一旦指定,不可更改。
*例如:
int[ ] arr = new int[3];
#方式二:(创建静态数组)
*格式:
数据类型[ ] 数组名 = new 数据类型[ ]{元素1,元素2,元素3...};
*例如:
int[ ] arr = new int[ ]{1,2,3,4,5};
#方式三:(创建静态数组)
*格式:
数据类型[ ] 数组名 = {元素1,元素2,元素3...};
*例如:
int[ ] arr = {1,2,3,4,5};
2 什么时候使用动态赋值?什么时候使用静态赋值?
答:
已知数组的长度,可以使用动态赋值
已知数组的内容,可以使用静态赋值
3 堆中存放的是什么?栈中存放的是什么?
答:
堆中存放引用类型对应的对象或者数组,new创建出来的,都保存在堆内存
栈中存放main方法,方法运行时的内存,main方法运行时,main方法进栈执行
4 数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
答:
#数据索引越界异常:
创建数组,赋值3个元素,数组的索引就是0,1,2,没有3索引,因此我们不能访问数组中不存在的索引。如果访问超过这个范围的索引值,程序运行后,将会抛出 ArrayIndexOutOfBoundsException 数组索引越界异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。
#数组空指针异常是怎么产生的?
如下代码所示:
public static void main(String[] args) {
int[] arr = {1,2,3};
arr = null;
System.out.println(arr[0]);
}
arr = null 这行代码,意味着变量arr将不会在保存数组的内存地址,也就不允许再操作(访问)堆内存中保存的数组了,因此运行的时候会抛出 NullPointerException 空指针异常。在开发中,数组的越界异常是不能出现的,一旦出现了,就必须要修改我们编写的代码。简而言之,main方法进栈之后,找不到堆内存存放的数组的地址值,无法访问到数组,出现空指针异常
5 今天有什么自己觉得比较重要的知识点?
答:
充分理解数组的索引,数组的索引值是0~(数组长度-1),如果超出这个范围,将出现数组索引越界异常
通过数组的索引,可以向数组进行赋值,也可以提取数组中各位置的值
*数组名[索引]=数值,为数组中的元素赋值
*变量=数组名[索引],获取出数组中的元素
充分理解并熟练运用数组的遍历,通过数组的遍历,既可以寻找数组中的最大值,最小值,也可以在此基础上对数据整体进行更复杂的数学计算。
|