您的位置:首页 > 编程语言 > Java开发

java数组的理解--学习总结

2016-01-16 18:13 393 查看
java 数组里面要求一个数组里面只能存储一种数据类型的数据。

1.定义数组

java里面支持两种方式来定义数组。

例:type[] arrayName; 或type arrayName[];

对于type[] arrayName类型来说,很容易知道定义的是type[]的类型,区别于type类型。第二种的可读性较差,在

java语言中已不常用。

在java中,数组只是一种引用类型的变量,它并没有指向任何有效的内存。因此定义数组时不能定义数组的长度。所以

也并没有有效的内存来处理数组元素。只有对这个数组进行初始化才可以进行使用。

2.数组的初始化

数组的初始化有两种方式:静态初始化和动态初始化

1、静态初始化

arrayName = new type[]{element1,element2,element3,element4};

例:将数组的定义,与初始化同时完成

int[] intArr;

intArr =new int[]{5,6,8,20};

2、动态初始化

arrayName = new type[length];

例:将定义数组与数组的初始化同时完成

int[] prices = new int[5];

3.使用数组

例:for(int i = 0;i<prices.length;i++)

{

System.out.println(prices[i]);

}

4.foreach 循环

for(type variableName:array|collection)

{

System.out.println(variableName);

}

5.深入数组理解

(1)内存中的数组

数组只是一种引用数组类型,数组引用变量只是一个引用,数组元素和数组变量在内存里是分开存放的。只有该引用变量指向一段有效的内存时,才可以访问对应数组元素。

实际的数组对象被存储在堆(heap)内存中,而数组引用变量是一个局部变量,它被存在栈(stack)内存中。





所有的方法中定义的局部变量都是放在栈内存中的。必须牢记的是,定义并初始化一个数组以后,在内存中分配的两个空间,一个用于存放数组的引用变量,另一个用于存放数组本身。

(2)基本类型数组的初始化

public class PrimitiveArrayTest

{

public static void main(String[] args)

{

int[] iArr;

iArr = new int[5];

for(int i = 0;i<iArr.length;i++)

{

iArr[i]=i+10;

}

}

}

动态初始化的典型过程如下:





(3)多维(二维)数组的使用

定义:type[][] arrName;

arrName = new type[length][];

例:

public class TwoDimensionTest

{

public static void main(String[] args)

{

int[][] a;

a = new int[]4[];

for(int i = 0;len = a.length;i<len;i++)

{ System.out.println(a[i]);
}

a[0] = new int[2];

a[0][1] = 6;

for(int i = 0,len = a[0].length;i<len;i++)

{ System.out.println(a[0][i]);
}

}

}

这段代码的执行过程如下所示:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: