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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

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

26 个回复

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

(1)数组是java中存储数据长度的容器,它的长度是固定的,并且存储的多个数据的数据类型必须要一致。
(2)数组定义的格式:
       数据类型[] 数组名  例如:int[] arr;  double[] arr;  char[] arr; String[] arr;
       数据类型 数组名[]  例如:int arr[];  double arr[];  char arr[]; String arr[];
数组定义好之后,需要对数组进行赋值(初始化):
       动态初始化格式:int[] arr = new int[10];
       静态初始化格式:标准格式 int[] arr = new int[]{1,2,3,4,5};
                 省略格式 int[] arr={1,2,3,4,5};
2.什么时候使用动态赋值?什么时候使用静态赋值?
      当不知道数字的赋值内容的时候采用动态初始化,当知道数组中赋值内容的时候,采用静态初始化

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

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

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

      (2)、空指针异常:当一个引用数据类型的变量被赋值为null后,再次使用该变量调用方法或者访问数组元素等操作时,会报该异常  
             解决方案:不要给引用数据赋值为null  
             注意:有的时候null,并不是由我们手动给的null值,而是在数组中引用数据类型,不赋值默认就是null.
             例如:int[] arr=new int[5];
              arr[0]=12;
              arr[1]=13;
              arr[2]=14;
        //在程序中,当我们对一个长度为5的数组进行如上赋值,那么arr[3]、arr[4]因为没有赋值就默认为null。

回复 使用道具 举报
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
回复 使用道具 举报

1.什么是数组?数组的定义有哪几种格式?
答:数组就是储存长度固定的容器,且储存的数据类型是一样的。
       两种:
        数据类型 [] 数组名;
        数据类型 数组名 [];

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

3.堆中存放的是什么?栈中存放的是什么?
答:堆中存放的是;所有new出来的东西都在堆内存开辟空间。
       栈中存放的是;方法执行需要进栈执行,方法执行完了毕出栈。

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
答:由于数组的长度是从开始算的。所以索引的值是arr.length-1
       ,如果索引值大于这个就会报警越界异常。
      
       空指针异常;当一个引用数据类型的变量被赋值null后,再使用该
       变量调用方法或者访问数组元素等操作时就会报错
回复 使用道具 举报


1.什么是数组?数组的定义有哪几种格式?
数组就是存储数据固定长度的容器,而且存放的数据的类型均要一致。
大致分为两种类型,一种是基本数据类型,也就是整型和浮点型以及字符型和布尔类型,另外一种是引用数据类型,例如String,默认值都是null。

2.什么时候使用动态赋值?什么时候使用静态赋值?
一般在数组定义的时候已经知道数组中元素的内容的时候,使用静态初始化
在数组定义中未知数组中的内容,使用动态初始化。

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

堆是所有new出来的东西都在堆内存开辟空间;方法的执行需要进栈执行,而且方法的执行都是到栈内的底部执行,执行完毕再出栈,

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组越界英文名称是ArrayIndexOutOfBoundsException,因为在使用索引值操作数组元素的时候超过当前数组最大索引值导致出现的问题;正确的操作方法是操作数组元素的时候注意索引范围即可。
数组空指针异常英文名称NullPointerException,因为在当一个引用数据类型的变量被赋值为null后,再使用该变量调用方法或者访问数组元素等操作时,就会出现这个问题;但是有的时候不一定是因为手动赋值的原因,也有可能是数据类型本身默认值就是null,一般尽量避免给数组变量赋值为null。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?

  数组就是用容器保存可以方便存储和管理数据。

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

   在数组定义的时候未知数组元素内容的时候使用动态赋值
   在数组定义的时候已知数组元素内容的时候使用静态赋值


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

  堆中存放开辟空间,栈中存放方法执行

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

当访问数组的索引值超过了数组最大索引值的时候,会引发数组越界异常。
当一个引用数据类型的变量未赋值时默认为null,使用未赋值变量调用方法或访问数组元素等操作时会产生数组空指针异常。

回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组就是储存数据长度固定的容器;数组的定义有两种格式,第一种为数据类型+[]+数组名,第二种为数据类型+数组名+[]
2.什么时候使用动态赋值?什么时候使用静态赋值?
当我们不知道数组中赋值的内容的时候,使用动态赋值;当我们知道数组中赋值的内容的时候,使用静态赋值。
3.堆中存放的是什么?栈中存放的是什么?
堆中存放所有new的对象;栈中保存变量,指向堆内存的地址值。
4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
数组越界异常是当我们访问的数组的索引值,超过了数组的最大索引值所产生的;数组空指针异常是当数组赋值为null时,使用数组去访问数组中的元素的时候所产生的。
回复 使用道具 举报 1 0
1.什么是数组?数组的定义有哪几种格式?
数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。数组的定义有2种格式:
(1)动态初始化,数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度];
(2)静态初始化,标准格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,元素3...};省略格式:数据类型[] 数组名 = {元素1,元素2,元素3...};
注意事项:使用动态初始化数组时,数组元素有具体默认值
2.什么时候使用动态赋值?什么时候使用静态赋值?
当我们知道数组中赋值的内容的时候,使用静态初始化,不知道的情况下使用动态赋值。
3.堆中存放的是什么?栈中存放的是什么?
所有new的对象都在堆中,栈中保存的是变量,指向堆内存中的地址值。
4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
当我们访问的数组的索引值,超过了数组的最大索引值,引发索引越界异常;当数组赋值为null时候,使用数组去访问数组中的元素的时候会发生空指针异常。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
    数组指定是在固定定储存长度的容器进行储存任意类型的一种数据
    动态数组的格式为:数据类型[] 数组名 = new 数据类型[数组长度];
    静态数组的格式有:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...,元素n};
           静态简化版   :  数据类型[] 数组名 = {元素1,元素2,...,元素n};
2.什么时候使用动态赋值?什么时候使用静态赋值?
    在创建数组未知或不指定值并且需要自己给元素赋值的情况下使用动态赋值
    在已知数组长度和指定值的情况下使用静态赋值
3.堆中存放的是什么?栈中存放的是什么?
     堆内存中放的是储存对象或者数组,使用new创建的数据
     栈内存中放的是放方法main
4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
    数组越界异常是指当访问的索引值超过了数组最大的索引值是会引发该异常
    空指针异常指的是当一个引用数据类型的变量被赋值null后,使用该变量调用方法
    或访问数组元素操作时会引发异常
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
答:一次性存储较多变量而且变量的类型相同的存储模型;数值定义有两种格式一种为int [] arr;另一种为int arr []。

2.什么时候使用动态赋值?什么时候使用静态赋值?
答:当有确定的数值时,一般使用静态赋值,而动态赋值指定数组长度,内部的值由系统分配默认值。

3.堆中存放的是什么?栈中存放的是什么?
答:再执行类时每当new时就会在内存的堆中存放new的数据,栈用来存放运行main方法。

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
答:当你访问一个超出数组长度的值时,就会发生数组越界异常;当arr = null时,数组就保持它自己的地址值,这时候去访问就会发生空指针异常。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
        数组是储存数据长度固定的容器,储存多个数据的数据类型要一致。
        两种:int[] arr;//推荐使用
                  int  arr[];

2.什么时候使用动态赋值?什么时候使用静态赋值?
        动态赋值用于不知道数组内容但是知道数组长度的时候
        静态赋值用于知道数组内容的时候

3.堆中存放的是什么?栈中存放的是什么?
        堆中存放的是对象
        栈中存放的是一个正在调用的方法。或局部变量表、操作栈、动态链接、方法出口等信息

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
        查询数组数值时候,查询时的索引值输入超过了元素的个数-1。
        当数组引用变量被赋值为空的时候,此时数组的地址值就被指示为空,不允许操作了,再操作数组的时候就会产生空指针异常;
       
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?

数组就是存储一定数量的数据的容器,且要求存储的数据的数据类型一致。

三种格式:例如

动态初始化:int[] style1 = new int[5];

静态初始化:int[] style2 =  new int[]{1,2,3,4,5};

                        int[]  style3 ={1,2,3,4,5};

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

只知道数组的具体长度,不知道数组元素具体值;

知道数组的具体长度,且知道数组元素的具体值。

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

堆中存放的是用new关键字所创造出来的内存,一般存储对象或者数组;

栈中存放的是方法运行时所使用的内存。

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

访问的索引超出了数组本身设定的索引范围,引起越界异常;

将null赋值给数组后,数组名将不会保存数组的内存地址,因此不能继续操作数组,若仍想操作数组,运行时将会抛出空指针异常。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组是java中存储数据长度固定的容器,存储多个数据的数据类型要一致

格式一:数据类型[ ]  变量名    (推荐使用)
范例:   int [ ] arr
定义了一个int类型的数组,数组名是arr

格式二:数据类型  变量名[ ]
范例:   int arr [ ]
定义了一个int类型的变量,变量名是arr数组

2.什么时候使用动态赋值?什么时候使用静态赋值?
动态赋值:在不知道具体数组元素的时候使用
静态赋值:在知道具体数组元素的时候使用

3.堆中存放的是什么?栈中存放的是什么?
存放的是新建的对象,栈中存放的是方法和变量

注意:
在栈内存中存储的变量和方法,使用完毕后,会立即消失
在堆内存中存储的新建的内容,使用完毕后,会在垃圾回收器空闲时被回收

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
索引越界:访问数据中不存在的索引对应的元素,造成索引越界问题
ArrayIndexOutOfBoundsException

空指针异常:访问的数组已经不再指向堆内存的数据,造成空指针异常
NullPointerException

注意:
有时候null,并不是由我们手动给的null,
而是在数组汇总引用数据类型的默认值,不赋值就是null
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?

数组是用来存储数据的模型,方便管理数据。
数组的格式:
1.数组动态初始化:
数组类型[] 数组名 = new 数组类型[数组长度];
2.数组静态初始化:
标准格式:
数组类型[] 数组名 = new 数组类型[]{,,,};
省略格式:
数组类型[] 数组名 = {,,,};
2.什么时候使用动态赋值?什么时候使用静态赋值?

动态赋值:
当创建数组的时候,只给定数组的长度,由系统默认初始值。
静态赋值:
当创建数组的时候,直接将元素确定。

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

堆:所有new出来的东西
栈:方法执行需要进栈执行,方法执行完毕出栈。

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

当访问的索引值超过数组最大的索引值的时候,发生数组越界异常。
当数组的的变量被赋值为null后,访问数组的元素或调该数组的方法的时候会出现空指针异常.
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?

(1)数组是java中存储数据长度的容器,它的长度是固定的,并且存储的多个数据的数据类型必须要一致。
(2)数组定义的格式:
       数据类型[] 数组名  例如:int[] arr;  double[] arr;  char[] arr; String[] arr;
       数据类型 数组名[]  例如:int arr[];  double arr[];  char arr[]; String arr[];
数组定义好之后,需要对数组进行赋值(初始化):
       动态初始化格式:int[] arr = new int[10];
       静态初始化格式:标准格式 int[] arr = new int[]{1,2,3,4,5};
                 省略格式 int[] arr={1,2,3,4,5};
2.什么时候使用动态赋值?什么时候使用静态赋值?
      当不知道数字的赋值内容的时候采用动态初始化,当知道数组中赋值内容的时候,采用静态初始化

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

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

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

      (2)、空指针异常:当一个引用数据类型的变量被赋值为null后,再次使用该变量调用方法或者访问数组元素等操作时,会报该异常  
             解决方案:不要给引用数据赋值为null  
             注意:有的时候null,并不是由我们手动给的null值,而是在数组中引用数据类型,不赋值默认就是null.
             例如:int[] arr=new int[5];
              arr[0]=12;
              arr[1]=13;
              arr[2]=14;
        //在程序中,当我们对一个长度为5的数组进行如上赋值,那么arr[3]、arr[4]因为没有赋值就默认为null。

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

答:数组就是一些数字的集合。定义分为:

第一种:数据类型[] 数组名 例如 int[] arr;

第二种:数据类型  数组名[] 例如 int arr[];

动态初始化格式: 数据类型[]  变量名 = new 数据类型[元素个数] 例如 int[] arr = new int[3];

静态初始化格式:标准格式  数据类型[] 变量名 = new 数据类型{元素,元素,元素}例如 int[] arr = new int{1,2,3};

简化格式 数据类型[] 变量名 = {}; 例如 int[] arr = {1,2,3};

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

动态赋值:在数组中的元素没有指定具体的数值的时候,使用动态赋值

静态赋值:在数组的元素中,已经制定了有哪些元素的时候使用静态赋值

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

答:堆内存:对象,数组。所有new出来的东西都存放在堆内存

栈内存:方法执行需要进栈执行,方法执行完毕之后出栈

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

答:数组越界异常:使用的变量元素,超过了原本数组中的元素。

数组空指针异常:元素的值为null,使用了这个值来进行了输出以外的事情,就会发生。
回复 使用道具 举报
今天需要掌握的知识点有:

1.什么是数组?数组的定义有哪几种格式?
答:数组是java中的一种容器,长度固定、只能存储同一种数据类型.
数组有动态初始化格式和静态初始化格式.

2.什么时候使用动态赋值?什么时候使用静态赋值?
答:已知数组中赋值的内容时用静态赋值,未知数组的赋值内容时用动态赋值.

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

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
答:数组越界是访问了超过索引范围的最大值的时候产生的,数组空指针异常是数组值为null时产生的.
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
   数组就是存储数据长度固定的容器,多个数据只能存储同一种数据类型,数组定义有两种分别是:
  数据类型[ ] 数组名  和  数据类型  数组名[ ] 。

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

3.堆中存放的是什么?栈中存放的是什么?
   new出来的东西都存放在堆中,方法执行时要在栈里面执行,执行结束立即退出,和保存变量在堆内存中对应的地址值。

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
   当数组的索引值超出数组的最大索引值时,就会产生越界异常,当数组被赋值null的时候,通过索引进行数组访问时找不到数组对应的地址,就会产生空指针异常。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
类型相同的储存器,两种int[] arr;   int arr [].

2.什么时候使用动态赋值?什么时候使用静态赋值?
没有明确数值的时候用动态赋值,有明确值的时候用静态赋值

3.堆中存放的是什么?栈中存放的是什么?
堆:是所有new 产生的文件,栈:是运行main方法的地方

4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
访问一个超出数组长度的数组时候发生越界异常, arr=null的时候访问不到地址就会发生空指针异常。
回复 使用道具 举报
1.什么是数组?数组的定义有哪几种格式?
数组就是储存数据长度固定的容器,存储多个数据的数据类型要一致
第一种:数据类型[] 数组名
第二种:数据类型  数组名[]

2.什么时候使用动态赋值?什么时候使用静态赋值?
在数组定义的时候未知数组中元素的内容,使用动态初始化
一般在数组定义的时候就已知数组中元素的内容的时候,使用静态初始化

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


4.数组越界异常是怎么产生的?数组空指针异常是怎么产生的?
当我们访问的数组的索引值,超过了数组的最大索引值,引发索引越界异常
当数组赋值为null时候,使用数组去访问数组中的元素的时候会发生空指针异常
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马