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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

24 个回复

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

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

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

答:数组是java中存储大量数据的容器,存储的数据类型要固定。分为 {数据类型[] 数组名}(int[] arr;)和{数据类型 数组名[]}(int arr[];)两种定义格式,一般用第一种。

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

答:不知道数组内具体元素的时候用动态赋值,知道具体元素时使用静态赋值。

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

答:堆中存放的时对象或者数组,由new创建的都存放在堆中。栈中存放的是Java程序运行时的内存,比如说main方法运行时就是存放在栈中。

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

答:出现了超过数组索引范围的索引,所以会出现数组越界异常。因为赋值失败等原因把 null 作为了一个数组的堆内存地址,就会出现数组空指针异常。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组是Java中的一种容器,用于存储大量的数据,要求存入数组中的元素必须是同一类型,且数组的长度固定
数组定义格式:
1>数据类型[] 数组名;例如:int[] arr;
2>数据类型 数组名[];例如:String st[];

2.什么时候使用动态赋值?什么时候使用静态赋值?
1>当已知数组长度,不知数组内容时用动态赋值。
2>已知数组内容直接用静态赋值。

3.堆中存放的是什么?栈中存放的是什么?
1>堆中放的是所有new出来的东西,在内存中开辟一块空间供它使用。2>栈中存放的运行方法,程序运行都要入栈,结束后出栈。

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
1>当用户访问数组的索引值超过了数组最大的索引值,就发生了数组越界,如:Int[] arr = new int[6]; 当用户检索arr[6]的时候就会发生数组越界,因为数组检索是从0开始检索的它的最大检索位为arr[5];
2>数组空指针是指数组变量被赋予null,而一般造成这一原因是因为赋值失败/忘记赋值 造成引用数据类型使用的是默认值null再用引用数据类型的使用导致的。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?

答:数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致。
数组由两种定义:
(1)数据类型[] 数组名
(2)数据类型 数组名[]


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

答:当不知道数组的元素内容的时候用动态赋值,当知道数组的元素内容的时候用静态赋值。


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

答:堆中存放的是new创建的对象或数组
栈中存放的是方法、局部变量


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

答:1.当我们访问索引值超过最大索引值时,程序运行后,将会抛出ArrayIndexOutOfBoundsException 数组越界异常。

2.引用数据的值为null ,意味着变量arr将不会再保存数组的内存地址,也就不允许再操作数组了,因此运行的时候会抛出 NullPointerException 空指针异常。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?

  存储大量相同数据类型数据的容器。
  有两种的定义格式:第一种 数据类型[] 数组名 ;
                    第二种 数据类型  数组名[]

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

   当定义数组的时候,不知道元素内容,使用动态初始化,定义的时候,知道元素的内容,直接使用静态初始化


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

  堆中存放的是所有new出来的数据
  栈中存放的是方法中定义的变量

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

  越界异常是因为访问数组的索引值超过了数组最大的索引值,也就是超过了数组规定的长度。
  空指针异常是因为引用的数据类型的值是null,没有对应的栈空间数据,访问数组内的元素将返回空指针异常。

回复 使用道具 举报
1.数组是java提供的一种容器,要求数组元素类型一致,长度固定不变
数组类型[] 变量名
数组类型 变量名[]

2.不知道数组各个数的值就用动态,知道就用静态

3.new出来的都存在堆中,栈中存放着方法

4.赋值错误就会出现null
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组是Java提供的一种容器,要求数组元素类型一致,长度固定不可变
数据类型[] 变量名;
数据类型 变量名[];

2.什么时候使用动态赋值?什么时候使用静态赋值?
当不明确所有元素的值时用动态赋值,当明确所有元素的值时用静态赋值。

3.堆中存放的是什么?栈中存放的是什么?
堆中存放的是引用类型对象,栈中存放变量和方法

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组越界是当访问了数组范围以外的索引时产生的,
数组空指针是访问了地址为null的对象时产生的。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
        储存多个类型相同变量的容器。

        静态初始化:        数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
                        数据类型[] 数组名 = {元素1,元素2,...};

        动态初始化:        数据类型[] 数组名 = new 数据类型[数组长度];

2.什么时候使用动态赋值?什么时候使用静态赋值?
        不明确数组内容时使用动态初始化。
        明确数组内容时使用静态初始化

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

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
        数组越界异常:访问超出索引范围。
        数组空指针异常:存储数组首地址的变量为NULL会产生空指针。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
同一类型的元素放置在一个容器中;格式:1.类型[] 数组名 = new 类型[数组长度];
                                2.类型[] 数组名 = new 类型[]{元素};
                                3.类型[] 数组名 = {元素};

2.什么时候使用动态赋值?什么时候使用静态赋值?
对于已知元素的数组用静态赋值。对于不能确定数组元素值的时候用动态赋值。

3.堆中存放的是什么?栈中存放的是什么?
堆中存放对象实例。栈中存放方法变量,执行完就将被释放。

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
引用的索引值超过了数组的长度,通常不是索引值写错就是数组名写错造成。
变量赋值失败产生的空值null;或者引用数据类型变量的初始默认值为null,没有对其赋值。
对null进行输出操作就会产生空指针异常。
回复 使用道具 举报
1.数组就是相同类型的数据的一种集合方式,数组的定义有三种格式
类型[] 变量名 = new 类型 [数组长度];
类型[] 变量名 = new 类型[]{一个值,两个值...}
类型[] 变量名 = {一个值,两个值...};

2.当一开始并不知道数组中属性的具体值时使用动态赋值,一开始知道可以使用静态赋值。

3.堆中存放的是new出来的数据,栈中存放的是方法和变量名。

4.数组越界异常是访问了超出数组索引范围的数据产生的,数组空指针异常是在数组中元素引用为空时调用了相应的方法产生的。
回复 使用道具 举报 1 0
1.什么是数组?数组的定义有哪几种格式?
数组是同一类型的整合
1)int[] arr={};
2)int[] arr= new int[]{};
3)int[] arr= new int[6];

2.什么时候使用动态赋值?什么时候使用静态赋值?
当知道初始值是使用静态赋值
当不知道初始值是使用动态赋值

3.堆中存放的是什么?栈中存放的是什么?
堆:存放new的对象
栈:存放变量、方法

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
当访问的索引值超出数组最大索引值时就会出现越界
当数组引用为空,调用了其方法则会产生空指针异常
回复 使用道具 举报
1.数组就是相同类型的数据存放在一起的方式。有三种,①动态定义: 类型[] arr = new 类型[数组长度];
②静态定义:类型[] arr = new 类型[]{};
③第二种静态定义:类型[] arr = {};
2.在不确定有多少数据或者要在定义数组之后才能添加数据的时候用动态,在确定数据时使用静态。
3.堆中存放的是new出来的数据,栈中存放的是方法和变量名。
4.数组越界异常是访问了超出数组本身的索引值就会产生。
数组空指针异常是在数组元素引用为空时。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?

        数组是一种数据结构,用来储存同一类型值的集合;
        格式:1.动态:数据类型[] arr = new 数据类型[数量-1];  2.静态:数据类型[] arr =new 数据类型[]{}{a,b,c,d.....};或数据类型[] arr = {a,b,c,d.....};

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

        当定义数组的时候,不知道元素内容,使用动态初始化;
              定义的时候,知道元素的内容,直接使用静态初始化;

3.堆中存放的是什么?栈中存放的是什么?
        堆:所有有new创建的对象和数组;
        栈:函数中定义的一些基本类型和对象的引用变量(方法执行都需要经过栈)。
4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
        1.索引越界
        原因:访问数组的索引值超过了数组最大的索引值
        解决:在访问的时候控制索引在最大索引范围之内
        2.空指针
        原因:引用数据类型的值为null,没有指向任何空间
        解决:让引用数据类型指向一块具体的空间,而不是null
回复 使用道具 举报

1.什么是数组?数组的定义有哪几种格式?
数组就是用于存储多个相同类型数据的存储容器
定义格式:1.动态: 数据类型 [] 变量名 = new  数据类型[元素长度];
              2.静态: 数据类型 [] 变量名 = new 数据类型[]{元素1,元素2,元素3...}
                 数据类型 [] 变量名 = {元素1,元素2,元素3..}

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

3.堆中存放的是什么?栈中存放的是什么?
堆中存放new出来的内容,使用结束后会消失
栈中存放的是局部变量、方法,使用完后会消失

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组越界异常就是访问了数组中不存在的索引对应的元素,造成索引越界问题
数组空指针就是访问的数组已经不再指向堆内存的数据,造成空指针异常
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组是有多个相同数据类型的集合;
数组的定义有2种方式:①数据类型[] 数组名;②数据类型 数组名[];

2.什么时候使用动态赋值?什么时候使用静态赋值?
不清楚数组具体有哪些元素的时候用动态赋值;
清楚数组具体有哪些元素的时候用静态赋值。

3.堆中存放的是什么?栈中存放的是什么?
堆中存放的是new出来的空间,如 new出来的数组或者new出来的对象。
方法开始执行时进入栈中,执行时所定义的变量存放在栈中,方法执行结束后退出栈,方法中的变量也跟着退出栈内存。

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组的索引值超过了数组的最大索引值;
引用数据的值为null,数组名存放的地址没有指向任何一处空间
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组是同一种数据类型数据的集合,并且这个集合大小是固定的。

数组的定义有两种格式:
数据类型[] 数组名;
数据类型 数组名[];

2.什么时候使用动态赋值?什么时候使用静态赋值?
当不能确定数组中的数据时,使用动态赋值。
当已经确定数组中的数据时,使用静态赋值。

动态初始化:
//定义时同时赋值
int[] arr = new int[5];

//先定义后赋值
int[] arr2;
arr2 = new int[5];

静态初始化
标准格式:
//定义时同时赋值
int[] arr = new int[]{1,2,3,4,5};

//先定义后赋值
int[] arr;
arr = new int[]{1,2,3,4,5};

省略格式:
//定义时同时赋值,不可先定义后赋值
int[] arr = {1,2,3,4,5};

3.堆中存放的是什么?栈中存放的是什么?
堆中存放的是为new出来的对象开辟的空间
栈中存放的是方法和变量

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组越界异常时因为访问超出数组索引值的范围

没有对引用数据类型的数组进行赋初值,因为引用数据类型的默认初始值为null,
没有指向任何空间,进行调用的话,就会出现数组空指针异常。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组是java中的一种容器,要求存入数组中的元素必须是同一种数据类型,且数组的长度固定。
数组的定义格式有int[] arr和int arr[]。

2.什么时候使用动态赋值?什么时候使用静态赋值?
在定义数组时元素内容未知的情况下,使用动态赋值。在定义数组时元素内容已知的情况下,使用静态赋值。



3.堆中存放的是什么?栈中存放的是什么?
new创建的,存储对象或者数组,都存储在堆中。
方法中定义的变量保存在栈中,方法执行需要进栈,执行完毕后出栈。


4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组越界的原因是访问数组的索引值超过了数组最大的索引值。空指针异常的原因是引用数据类型的值为null,一般是赋值失败或者忘记赋值造成引用数据类型使用的是默认值null。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
答:①数组就是存储数据长度固定的容器,存储多个数据的数据类型要一致;
    ②数据类型[] 数组名; 数据类型 数组名[];

2.什么时候使用动态赋值?什么时候使用静态赋值?
答:在创建数组时,不知道数组的元素内容用动态赋值;
    在创建数组时,知道数组的元素内容用静态赋值;
   
3.堆中存放的是什么?栈中存放的是什么?
答:①所有new出来的对象或数组都在堆中;
    ②栈是方法运行时使用的内存,方法运行时进栈,方法结束时出栈.

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
答:①是访问的索引值超过了数组的最大索引值;
    ②是引用数据类型值为null时,没有指向任何内存区域.
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组就是java的一个用于储存数据的容器,
1)int[] arr={};
2)int[] arr= new int[]{};
3)int[] arr= new int[6];

2.什么时候使用动态赋值?什么时候使用静态赋值?
知道数组长度用静态 不知道用动态

3.堆中存放的是什么?栈中存放的是什么?
new的开辟的空间  栈是方法和变量

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
索引值大于等于数组长度    没有对引用数据类型的数组进行赋初值,引用数据类型的默认初始值为null,
没有指向任何空间
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
  答:数组是java中的一种容器,用于存储多个数据,数组中的数据类型一致。
有两种格式;  动态初始化:
  ①数据类型[]  数组名 = new 数据类型[数组长度];
  ②数据类型  数组名[] = new 数据类型[数组长度];
   静态初始化:
   ①数据类型[]  数组名 = new 数据类型[]{数据1,数据2,数据3,...};
   ②数据类型[]  数组名 = {数据1,数据2,数据3,...};

2.什么时候使用动态赋值?什么时候使用静态赋值?
   答:在只知道数据个数,不知道数据内容时采用动态赋值。
       在只知道数据个数个数据内容时,采用静态赋值。

3.堆中存放的是什么?栈中存放的是什么?
   答: 堆中存放的是new开辟出来的数据空间,
        栈中存放的是方法的执行,方法中的变量保存在栈内存中。

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
  答:当数组内存的搜索值大于数组内存长度时,会造成数组越界异常。
      当数组的引用数据的值为null造成数组空指针异常。          
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马