A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天我们学习了数组,请根据自己的理解对下列问题进行回答:

今天需要掌握的知识点有:

1.什么是数组?数组的定义有哪几种格式?

数组是一个数据长度固定的容器,存放的数据的数据类型要求一致。
数组的定义有:

(1)动态初始化 ,由系统分配默认值。
定义格式:数据类型[]  数组名 = new 数据类型[数组长度];
或者 数据类型 数组名[] =new 数据类型[数组长度];
通常使用第一种,更容易理解。
(可以先定义,后赋值。如:int[] a; a = new int[3];)

(2)静态初始化,即创建数组时就指定好数组元素中的内容。
定义格式:数据类型[] 数组名 = new 数据类型[]{元素1的值,元素2的值,...}  或者省略格式:数据类型[] 数组名 ={元素1的值,元素2的值,...}
(省略格式的写法不可以先定义,后赋值)


2.什么时候使用动态赋值?什么时候使用静态赋值?

不知道数组元素内容时使用动态赋值;
知道数组元素内容时使用静态赋值。


3.堆中存放的是什么?栈中存放的是什么?

堆中存放的是程序运行时new出来的对象或数组,对外提供地址值,当栈中没有变量指向堆内存的地址值时,一段时间后由垃圾回收处理器回收。

栈中存放的是方法和局部变量,方法执行进栈,执行完毕出栈,方法中的引用类型变量执行的是堆内存中的地址值,当栈内存中main方法出栈后,没有任何变量指向堆内存中的地址值。


4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?

数组越界是因为访问了不存在的数组索引,解决方法是访问是正确的数组索引。
数组空指针异常是因为把空地址值赋给了数组引用,导致访问数组时出现空指针异常,解决方法是给数组引用正确的堆内存空间。


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马