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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

今天我们学习了数组,请根据自己的理解对下列问题进行回答:
今天需要掌握的知识点有:
1.什么是数组?数组的定义有哪几种格式?
2.什么时候使用动态赋值?什么时候使用静态赋值?
3.堆中存放的是什么?栈中存放的是什么?
4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?

18 个回复

倒序浏览
1.什么是数组?数组的定义有哪几种格式?
     数组就是存储数据长度固定的容器,数组内储存数据的数据类型要一致;
     有两种格式:1、数据类型[]  数据名     如:int[] arr; double[]  arr;
                         2、数据类型  数据名[]     如:int  arr[];   double  arr[];

2.什么时候使用动态赋值?什么时候使用静态赋值?
     当只给定数组的长度没给出具体元素时使用动态赋值;当在创建数组时,直接将元素确定时使用静态赋值;

3.堆中存放的是什么?栈中存放的是什么?
     堆中存放的是对象或者数组和new来创建的东西;栈中存放的是方法运行时使用的内存,比如main方法;

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
     数组越界异常是 访问的索引超出数组长度产生的;例如数组长度为3,索引范围是0~2,但是却访问了一个3的索引,此时就会出现数组越界异常;
     数组空指针异常是 将null赋值给数组后再访问数组的内容后产生的;
     例如    arr = null;System.out.println(arr[0]); 此时就会出现空指针异常
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组是一种用于存储多个相同类型数据的存储容器;格式有两种:1.数据类型[ ]变量名 ;2.数据类型 变量名[ ]
2.什么时候使用动态赋值?什么时候使用静态赋值?
当在定义数组时,就已经知道数组中的元素内容时可以使用静态初始化
如果定义时,不知道元素内容,就使用动态初始化
3.堆中存放的是什么?栈中存放的是什么?
存储对象或者数组,new来创建的存放在堆;方法运行时使用的内存,比如main方法运行,进入栈中执行
4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组索引越界异常
产生原因:访问的索引值,超过了数组最大的索引值
解决方案:不要让索引越界,将索引控制在范围之内
空指针异常
产生原因:引用类型的变量,没有指向一个具体空间,而是默认值null,还是用该变量的内容,就会出现空指针异常
解决:不要给引用类型赋值为null
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?

数组就是java中的用于存储大量数据的一种容器。

定义数组方式:
①:数据类型[] 变量名;(最常用的定义方式)
②:数据类型 变量名[];


2.什么时候使用动态赋值?什么时候使用静态赋值?
如果定义数组时候,已知数组中存储的所有元素的内容就使用静态初始化。
如果定义数组时候,不知道数组元素内容,就使用动态初始化。

3.堆中存放的是什么?栈中存放的是什么?
堆中存放的是new出来的内容。
栈中存放的是方法和定义在方法中的变量。(存放局部变量)

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组越界异常是因为访问的索引值,不在数组的索引值范围而产生。

数组空指针异常是因为访问数组已经不再指向堆内存的数据空间而产生的。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
答:存储数据长度固定的容器,其中数据的类型要一致。
格式:int[] a;
          int a[];

2.什么时候使用动态赋值?什么时候使用静态赋值?
答:在不知道具体值时使用动态赋值。在确定元素的情况下使用动态赋值。

3.堆中存放的是什么?栈中存放的是什么?
答:堆中存放的是对象,用new来创建的,都存放在堆内存中。栈内存中存放的是声明。

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
答:越界异常:在访问给定的数组长度时,访问出界,数组下标是从0开始计算的,所以
数组下标长度为元素长度-1;例如:有5个数组元素,下标是0~4,而不是到5;我们却访问了一个下标为5的元素,
此时就会出现数组越界异常。
指针异常:数组访问元素,是由数组名找到元素所在的地址,在通过下标找到该元素,而此时数组名指向一个Null地址,数组不能
通过数组名访问地址,所以会出现数组空指针异常。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组就是存储数据长度固定的语句,并且存储多个数据的类型必须一致
有2种:
(1)数据类型[] 数组名
(2)数据类型 数组名[]

2.什么时候使用动态赋值?什么时候使用静态赋值?
知道数组里面的内容时用静态赋值;不知道内容,只知道数组长度时用动态赋值

3.堆中存放的是什么?栈中存放的是什么?
堆内存存放的是存储new出来的内容(如实体,对象);
栈内存存储局部变量,定义在方法中的变量,使用完毕后,立即消失。

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组越界异常是访问数组索引时超出了数组的长度,访问了数组中不存在的索引对应的元素,造成了索引越界异常。

空指针异常:访问的数组不指向堆内存的数据,为null,造成了空指针异常
回复 使用道具 举报
今天我们学习了数组,请根据自己的理解对下列问题进行回答:

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

1.什么是数组?数组的定义有哪几种格式?
答:数组是存放一组相同数据的容器
数组的定义有三种
①int[] arr = new int[5];
②int[] arr = new int[]{1,2,3,4,5};
③int[] arr ={1,2,3,4,5};

2.什么时候使用动态赋值?什么时候使用静态赋值?
答:动态赋值 先开辟好内存空间,后赋值。
    静态赋值 在开辟内存空间的同时赋值
    事先知道存放元素值的时候使用静态赋值

3.堆中存放的是什么?栈中存放的是什么?
堆中存放对象, 方法在栈中执行。

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组下标超过数组最长长长度
使用NULL值去引用其他对象
回复 使用道具 举报
胡辉 初级黑马 2019-11-1 20:10:38
8#
今天我们学习了数组,请根据自己的理解对下列问题进行回答:

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

1.什么是数组?数组的定义有哪几种格式?
数组就相当于一个容器,用于存储数据用的, 使用new关键字就是在内存开辟一个空间,用于存储指定的数据类型
数组定义的格式:
二种  动态定义: 数据类型[] 变量名 = new 数据类型[数据的长度];
        eg: int[] arr = new int[5];表示定义一个int类型的数据,存储元素为5个
静态定义: 标准格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...}
简化格式: 数据类型[] 数组名= {元素1,元素2,元素3...} 注意:这种格式不能先定义数组后赋值,会报错,必须定义跟赋值同时进行
2.什么时候使用动态赋值?什么时候使用静态赋值?
当不知道要存储什么元素的时候使用动态赋值,当知道存储的元素且知道元素的个数的时候用静态赋值
3.堆中存放的是什么?栈中存放的是什么?
堆中存放的是引用类型 也就是使用关键字new出来的,包括 类 接口 数组等

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组越界异常的产生是因为我们在获取数组值的时候超过了数组的长度
空指针是因为数组变量没有指向一个内存地址 eg:int[] arr = null ;sout(arr)这样会报空指针异常
回复 使用道具 举报
今天我们学习了数组,请根据自己的理解对下列问题进行回答:

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

1.什么是数组?数组的定义有哪几种格式?
数组就是存储长度固定的容器。
第一种、int[]arr;第二种、int arr[];

2.什么时候使用动态赋值?什么时候使用静态赋值?
不知道数组元素,只想给定数组长度时使用动态赋值。
已知数组元素使用静态复制。

3.堆中存放的是什么?栈中存放的是什么?
堆内存中存储对象或者数组。
栈中存储方法运行时使用的内存。

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
索引越界,索引值超过数组当度。
把null复制给数组会出现数组空指针异常。

章鑫
回复 使用道具 举报 1 0
1.什么是数组?数组的定义有哪几种格式?
答:数组就是java中的一种容器。
动态初始化格式:数据类型[]  数组名 = new  数据类型[数组长度]。
静态初始化格式:数据类型[]  数组名 =  new  数据类型[]{1,2,3}。

2.什么时候使用动态赋值?什么时候使用静态赋值?
答:当在定义数组时,就已经知道数组中的元素内容时,可以使用静态初始化
如果定义时,不知道元素内容,就使用动态初始化

3.堆中存放的是什么?栈中存放的是什么?
答:堆内存:
存储对象或者数组,new来创建的,都存储在堆内存。
方法栈:
方法运行时使用的内存,比如main方法运行,进入方法栈中执行。


4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
答:产生原因:访问的索引值,超过了数组最大的索引值。
解决方案:不要让索引越界,将索引控制在范围之内

产生原因:引用类型的变量,没有指向一个具体空间,而是默认值null,还是用该变量的内容,就会出现空指针异常
解决:不要给引用类型赋值为null
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致
数组有两种格式;分为动态初始化格式, 例如:数据类型[] 数组名 = new 数据类型[数组长度];
静态初始化格式,例如:数据类型[] 数组名 = {元素1,元素2,...};

2.什么时候使用动态赋值?什么时候使用静态赋值?
不知道数组元素,只想给定数组长度时使用动态赋值。
已知数组元素使用静态复制。


3.堆中存放的是什么?栈中存放的是什么?
堆:存储对象或者数组,new来创建的存放在堆
栈:方法运行时使用的内存,比如main方法运行,进入栈中执行使用完毕后,立即消失

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组越界异常数产生原因:组长度为3,索引范围是0~2,但是我们却访问了一个3的索引。
数组空指针异常产生原因:arr = null 这行代码,意味着变量arr将不会再保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常

回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?

数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。
数据定义有(1)数据类型[] 数组名(2)数据类型 数组名[] 两种格式
例如:
(1) int [] i; (2) int i[];

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

在不知道数组元素内容的情况下使用动态赋值,在知道数组元素的情况下使用静态赋值

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

堆内存存储对象或者数组,通过new来创建的,都存储在堆内存中。
栈内存存放的是变量,指向堆内存中的地址

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
访问索引超过数组的索引范围就回产生数组越界异常
  数组丢失内存地址
  例如:
   int[] arr = new int[3];
   arr = null;
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
※数组是java中存储大量数据的容器,存储的数据类型要固定。
※格式分为  数据类型[] 数组名(int[] arr;),
      数据类型 数组名[](int arr[];)
      一般用第一种。
2.什么时候使用动态赋值?什么时候使用静态赋值?
※定义一个数组,已知元素内容,用静态初始化赋值;不知道元素内容,用动态初始化赋值。
3.堆中存放的是什么?栈中存放的是什么?
※堆中存放的时对象或者数组,由new创建的都存放在堆中。栈中存放的是Java程序运行时的内存,比如说main方法运行时就是存放在栈中。
4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
※当用户访问数组的索引值超过了数组最大的索引值,就发生了数组越界,如:Int[] arr = new int[5]; 当用户检索arr[5]的时候就会发生数组越界,因为数组检索是从0开始检索的它的最大检索位为arr[4];
※数组空指针是指数组变量被赋予null,而一般造成这一原因是因为赋值失败/忘记赋值 造成引用数据类型使用的是默认值null再用引用数据类型的使用导致的。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组是java中的一种容器,长度不可更改、只能存储同一数据类型
数据类型[] 数组名称
数据类型  数组名称[]

2.什么时候使用动态赋值?什么时候使用静态赋值?
当不知道数组中赋值的内容时,使用动态初始化
知道数组中赋值的内容的时,则使用静态初始化

3.堆中存放的是什么?栈中存放的是什么?
new出来的,都在堆里面
存放的是变量,指向的是一个new空间,在堆内存中开辟这块空间

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
访问的索引值,超过了数组的最大索引值,造成索引越界异常
引用类型的变量,没指向一个具体空间,而是默认值null,还用该变量的内容,就会出现空指针异常
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
        数组就一种容器,一个数组中只能保存同一种类型的数据
        定义数字的格式:数组类型[] = new 数组类型[数组大小];
                                        数组类型[] = new 数组类型[]{数组元素1,数组元素2....数组元素n};
                                        数组类型[] = {数组元素1,数组元素2....数组元素n};

2.什么时候使用动态赋值?什么时候使用静态赋值?
        当只知道数组的长度,不知到数组元素的时候使用动态赋值。
        当数组里面的元素已经确定了,使用静态赋值。
3.堆中存放的是什么?栈中存放的是什么?
        堆中存放的是引用变量。
        栈中存放的是局部变量。如果局部变量是基本数据类型,数据直接存放在栈中,
        如果局部变量是引用类型,该变量保存的是对象在堆中存放的地址。
4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
        数组越界值的是访问数组的索引超出数组的长度,数组的的索引从0开始,索引的最大值为数组长度再减1。
        数组空指针:数组是引用变量,保存的是数组对象在堆内存的地址,
        当引用对象被用null赋值时,就找不到数组对象的地址,发生空指针异常。
回复 使用道具 举报
MrCT 初级黑马 2019-11-1 21:30:23
16#
1.什么是数组?数组的定义有哪几种格式?
数组就是java中的一种容器。

(1)动态初始化:创建一个数组,指定固定的长度,且运行期间长度不能改变,数组中的每一个元素有默认值

格式:数据类型[]  数组名 = new  数据类型[数组长度];

(2)静态初始化
【1】取值
格式:数组名[索引值]

【2】赋值
格式:数组名[索引值] = 值;

或者
格式:数据类型[]  数组名 = {数组元素};

2.什么时候使用动态赋值?什么时候使用静态赋值?
数组元素未知的时候使用动态赋值;
数组元素已知的时候使用动态赋值;

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

1. 栈:存放基本类型 的变量数据和对象的引用,但对象本身不存放在栈中,而是存放在堆(new出来的对象)或者常量池中(字符串常量对象存放的常量池中),局部变量【注意:(方法中的局部变量使用final修饰后,放在堆中,而不是栈中)】

2.堆:存放main方法使用new创建的对象,全局变量

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组越界异常:访问的索引值,超过了数组最大的索引值
空指针异常:
产生原因:引用类型的变量,没有指向一个具体空间,而是默认值null,还是用该变量的内容,就会出现空指针异
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组是java中的一种容器,长度固定、只能存储同一种数据类型。
数组定义的格式:(1)数据类型[] 数组名称  (2)数据类型 数组名称[]

2.什么时候使用动态赋值?什么时候使用静态赋值?
当我们不知道数组中赋值的内容的时候,使用动态赋值;
当我们知道数组中赋值的内容的时候,使用静态赋值。

3.堆中存放的是什么?栈中存放的是什么?
堆中存放的是所有new的对象;栈中存放的是变量,指向堆内存中的地址值

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
当我们访问的数组的索引值,超过了数组的最大索引值,引发索引越界异常;
当数组赋值为null时候,使用数组去访问数组中的元素的时候会发生空指针异常
回复 使用道具 举报

1.什么是数组?数组的定义有哪几种格式?
        数组就是java中的一种容器
        定义数组:(1)数据类型[]  变量名;(最常用的定义方式)
                (2)数据类型   变量名[];(了解)

2.什么时候使用动态赋值?什么时候使用静态赋值?
        当在定义数组时,就已经知道数组中的元素内容时,可以使用静态赋值
        如果定义时,不知道元素内容,就使用动态赋值

3.堆中存放的是什么?栈中存放的是什么?
        堆:存储对象或者数组,new来创建的,都存储在堆内存。
        栈:方法运行时使用的内存,比如main方法运行,进入方法栈中执行。
4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
        数组越界异常:索引数大于索引范围
        数组空指针异常:arr = null 变量arr不会在保存数组的内存地址
回复 使用道具 举报
1.什么是数组,数组定义的几种格式?
答:数组是java中的一种容器,只能用来储存一种数据类型。
数组定义的格式有两种,分别是数据类型 [] 数组名和数据类 数组名[]
2.什么时候用动态赋值?什么时候用静态赋值
答:当知道数组中元素赋值时使用静态数据类型,不知道数组数据元素赋值时使用动态数据类型
3.堆中存放的是什么?栈中存放的时什么?
答:堆中存放的是new的所有对象。栈中存放的是堆的内存地址和变量
4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
答:数组越界异常是数据元素值大于数组长度,无法找到索引制定对象。
数组空指针异常是数组被赋值nell时,被直接打印输出
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马