天天看点

黑马程序员——java基础---数组

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 

一、数组的概念 

可以把数组想象成一个容器,这个容易用来存放同一种类型数据的集合。

把数据存入数组,数组会自动把存入的数据加上角标,也就是数组的索引。

二、数组的类型

常用的数组有一维数组,二维数组,三维数组 

1)一维数组的格式 

格式1.元素类型[] 数组名 = new 元素类型[元素的个数或数组长度]; 

例:int[] arr = new int [2]; 

格式2.元素类型[] 数组名 = new 元素类型{元素1,元素2,元素3}; 

例:int[] arr = new int {1,2,3}; 

还有一种简写的方式,

例:int [] arr = {1,2,3,4,5};(开发中常用这种方式)  

new 关键字:new 关键字是用来在堆内存中产生一个容器的实体。

注意!!——数组中的索引使用0开始的,也就是说数组中第一个元素的引用是0。 

——数组在堆内存中创建 有初始值 int 为0 ,boolean 为 false。 

数据是引用数据类型。不同于一般的常量引用。在内存中分为 栈和堆。如图所示。 

黑马程序员——java基础---数组

2)二维数组的格式 

格式1. int[][] arr= new int[3][2]; 

以上表示名称为arr的二维数组。有3个一维数组,每一个一维数组中有2个元素。 

格式2: int[][] arr= new int[3][]; 

表示有3个一维数组,没个以为数组为null; 

格式3:int[][] arr = {{3,8,2},{2,7},{9,0,1,6}}  

表示数组初始化。  

二维数组在内存中存在的形式。

int [][] arr = new int [2][4];

黑马程序员——java基础---数组

三、数组操作中常见的问题

1、数组脚标越界异常(ArrayIndexOutOfBoundsException)。例:

int[] arr = new int[2];

System.out.println(arr[3]);

访问到了数组中的不存在的脚标时发生。

2、空指针异常(NullPointerException)。例:

int[]arr = null;

System.out.println(arr[0]);

arr引用没有指向实体,却在操作实体中的元素时。