Java数组的创建和初始化
Java数组的创建和初始化
一、 一维数组的创建和初始化
1、 基本数据类型的静态初始化
int [ ] Array = { 1 , 2 , 3 , 4 } ;
或者
int [ ] Array = new int [ ]{1,2,3,4} ;
2、 基本数据类型的动态初始化
int [ ] Array = new int [ 100 ] ;
Array[ 0 ] = 0 ;
Array[ 1 ] = 1 ;
…………………
Array[ 2 ] = 99 ;
基本数据类型的一维数组的内存布局
 
1、 引用数据类型的静态初始化
class Point
{
int x , y ;
Point( int a , int b)
{
x = a ;
y = b ;
}
}
Point [ ] pa = {
new Point(1,4),new Point(3,9),new Point(15,18) } ;
或者
Point [ ] pa = new Point [ ]{
new Point(1,4),new Point(3,9),new Point(15,18) } ;
2、 引用数据类型的动态初始化
Point [ ] pa = new Point [ 3 ] ;
pa[ 0 ] = new Point(1,4) ;
pa[ 1 ] = new Point(3,9);
pa[ 2 ] = new Point(15,18) ;
引用数据类型的一维数组的内存布局

二、 二维数组的创建和初始化
1、 基本数据类型的静态初始化
int [ ][ ] a = {{1,2},{3,4}} ;
或者
int [ ][ ] a = new int [ ][ ]{{1,2},{3,4} } ;
2、 基本数据类型的动态初始化
① 方案
int [ ][ ] a = new int [ 2 ][ 3 ] ;
a[0][0] = 0 ;
a[0][1] = 1 ;
a[0][2] = 2 ; …………….
② 方案
int [ ][ ] a = new int [ 2 ][ ] ;
a[ 0 ] = new int [3] ;
a[ 1 ] = new int [3] ;
基本数据类型的二维数组的内存分布

1、 引用数据类型的静态初始化
Point [ ][ ] pt ={
{new Point(1,2),new Point(3,4)},
{new Point(5,6),new Point(7,8)},
{new Point(9,10),new Point(11,12)}
} ;
或者
Point [ ][ ] pt = new Point[ ][ ] {
{new Point(1,2),new Point(3,4)},
{new Point(5,6),new Point(7,8)},
{new Point(9,10),new Point(11,12)}
} ;
2、 引用类型的动态初始化
① 方法
Point[ ][ ]pt = new Point[3][2] ;
Point[0][0]=new Point(1,2) ;
Point[0][1]=new Point(3,4);
Point[1][0]=new Point(5,6);
…………………………………
② 方法
Point [ ][ ] pt = new Point[3][ ] ;
pt[0] = new Point[ 2 ] ;
pt[1] = new Point[ 2 ] ;
pt[2] = new Point[ 2 ] ;
pt[0][0] =new Point(1,2);
pt[0][1] =new Point(3,4);
pt[1][0] =new Point(5,6);
pt[1][1] =new Point(7,8);
pt[2][0] =new Point(9,10);
pt[2][1] =new Point(11,12);
引用数据类型二维数组的内存分布

第二种方法充分体现了:
元素是一维数组的一维数组就是二维数组
注:
① 其中的String 类的数组也可以这样创建
String [][] st={{“qwe”,”adsd”},{“asdf”,”ghjg”}};
,因为字符串常量本身就是一个字符串对象,这样较为简洁;
② 诸如 :new 数据类型 [元素个数] 语句中,“元素个数”可以是具体的数字,亦可以是int型变量
③ 我们已经知道了,多维数组实际上就是一维数组的组合,在任何一个维度的内存空间上除了并排的引用或者并排的数据之外,还开辟了一个 int length 型的内存空间,存储当前维度的“元素个数“,即

从而pt.length 存储的是3 , pt[0].lenght=pt[1].length
=pt[2].length=2 ;
④ length的属性为 public final int length , 因而程序中可以读取的长度,但不能够改变数组的长度
                    
                
                
            
        
浙公网安备 33010602011771号