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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1.什么是数组?数组的定义有哪几种格式?
数组是java中的一种容器,长度固定、只能存储同一种数据类型
定义格式:
        【1】数据类型[] 数组名称
        【2】数据类型  数组名称[]
2.什么时候使用动态赋值?什么时候使用静态赋值?
(1)动态初始化
        数据类型[] 数组名 =new 数据类型【数组长度】
        示例:int[] arr = new int[3];
注意:!!!
        【1】int[] 是数组的数据类型,是一个引用数据类型,占内存的,需要指定数组中存储元素的类型
        【2】动态初始化数组创建之后长度是固定的,所以必须先定义数组大小
        【3】动态初始化可以拆分为先定义,再赋值的这种方式

(2)静态初始化
        标准格式:数据类型[] 数组名 =new 数据类型[]{1,2,3,4}
        省略格式:数据类型[] 数组名 = {1,2,3,4}
        示例:int[] arr = new int[]{1,2,3,4};(标准)        int brr = {1,2,3,4};(省略)
注意:!!!
        【1】静态可以不写数组大小,但创建之后的长度也是固定的,不能再改变大小,还有索引也是从0开始到数组长度-1
        【2】标准格式可以拆分成先定义,再赋值的方式
        【3】省略格式不可以拆分成两部分,只能定义和赋值写在一起
        【4】等号前面的数据类型,必须和等号后面的数据类型一致

(3)应用场景:
        一般 在数组定义的时候就已知数组中元素的内容的时候,使用静态初始化
        在数组定义的时候未知数组中元素的内容,使用动态初始化
3.堆中存放的是什么?栈中存放的是什么?
【1】内存图:
        堆:所有new的对象都在堆中
        栈:保存的是变量,指向堆内存中的地址值
4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?

(索引值:数组创建出来之后,会为每一个元素分配一个编号,改编号从0开始,到数组的长度-1为止)

【1】数组索引越界异常:当访问的数组的索引值超过了数组最大的索引值的时候,引发该异常
(解决:不要超过最大索引值,最大索引值是数组长度 - 1)

【2】空指针异常:当一个引用数据类型的变量被赋值为null后,再使用该变量调用方法或者访问数组元素等操作时,
会报该异常
(解决方案:不要给引用数据类型赋值为null)

!!!注意:有的时候null,并不是由我们手动给的null值,而是在数组中引用数据类型,不赋值默认就是null
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马