黑马程序员_JAVA数组

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


1、数组概述 
当程序中使用到一系列相同类型的数据时,往往采用数组方式存偖以便于统一管理。数组本身是对象,属引用类型,但数组的元素可以是任意类型,包括基本类型和引用类型。基本维数不同,数组有一维数组、二维数组和多维数组。 

2、一维数组 
(1)一维数组有两种声明方式: 

  •       类型  数组名[]

  •        类型[] 数组名



例: 

int a[] ;   
int[] a;  
String[] name;


注意在声明的同时定义数组的长度是不允许的,如int a[10] 是非法的。 
由于数组是引用类型,在声明时其默认初始值是null。声明其实是在堆上作,将数组名记入堆栈,但并没有给数组分配空间,直到用new 时才真正在堆上开辟空间。可以用旅馆定房间进行比喻:声明相当于向旅馆前台进行定房预约,前台只是将订房者的信息登记下来,并没有进行房间分配。而new时相当于订房者到达酒店,在前台办理入住手续,拿到房匙,真正分配到属于自己的房间。 

例: 

int[] a;  
a = new int[20];

2、数组的初始化 
数组的初始化有动态初始化和静态初始化两种:动态初始化指的是分配空间与赋值是分开的;静态初始化指是的在分配空间的同时进行赋值。 
动态初始化: 

int[] i;  
i = new int[10];  
i[0] = 5;  
i[4] = 10;

静态初始化: 

int[] a = { 2, 4, 6 } ;

数组的引用下标是从0开始的,在赋值或引用时常用length属性判断是否越界。 

注意点:由于数组是引用类型,所以

=

并不能实现数组之间的赋值,如: 

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

由于数组是引用类型,所以这时数值y和x指向相同的堆内存空间,因此改变y数组的值,也就改变了x数组中的值,这是 int[] y = x 相当于给数组取了个别名。 

3、二维数组 
二维数组使用两个下标,如:

int a[][] = { {1,2}, {3,4,5,6}, {7,8}};

这时a.length指的是数组的维数,而a[i].length指的是第i维数组的个数。如上式中a.length的值为3, 而a[1].length的值为4.

你可能感兴趣的:(黑马程序员_JAVA数组)