深入理解JAVA数组.doc

深入理解JAVA数组.doc

ID:50842456

大小:216.50 KB

页数:7页

时间:2020-03-15

深入理解JAVA数组.doc_第1页
深入理解JAVA数组.doc_第2页
深入理解JAVA数组.doc_第3页
深入理解JAVA数组.doc_第4页
深入理解JAVA数组.doc_第5页
资源描述:

《深入理解JAVA数组.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、为什么我们认为JAVA没有多维数组,因为从数组底层的运行机制上来看。前面的几篇文章里提到过,JAVA语言里的数组类型是引用类型,因此,数组变量其实是一个引用,这个引用指向真实的数组内存。数组元素的类型也可以是引用,如果数组元素的引用再次指向真实的数组内存,这时会发现很像多维数组。根据数组的语法定义:type[]arrName;,这是典型的一维数组的定义语法,其中type是数组元素的类型。如果希望数组元素也是一个引用,而且是指向int数组的引用,那么可以把上面type具体看成int[](我们知道:int[]就是一种类型,int[]类型的用法与普通类型并

2、无任何区别),那么上面定义数组的语法就是int[][]arrName.扩大类型后:type[][]arrName;JAVA语言采用上面的语法格式来定义二维数组,但它的实质还是一维数组,只是其数组元素也是引用,数组元素里保存的引用指向一维数组。之所以写上面那些概念,就是想先让大家明白一维数组与二维数组之间的区别。下面看代码吧,不想写概念了。publicclassTwoDimensionTest{publicstaticvoidmain(String[]args){//定义一个二维数组int[][]a;//把a当成一维数组进行初始化,初始化a是一个长度为

3、4的数组//a数组的数组元素又是引用类型a=newint[4][];//把a数组当成一维数组,遍历a数组的每个数组元素for(inti=0,len=a.length;i

4、]=6;//这时a数组的第一个元素所指数组的第一个元素为系统默认值0/*为了让大家更直接的理解和明白我就忽略下格式吧,把编译结果,放上来,请大家谅解下。*///a数组的第一个元素是一个一维数组,遍历这个一维数组for(inti=0,len=a[0].length;i

5、ng[][]str1=newString[][]{newString[3],newString[]{"hello"}};//使用简化的静态初始化语法来初始化二维数组String[][]str2={newString[3],newString[]{"hello"}};System.out.println("使用静态初始化定义的二维数组:"+str1[1][0]);System.out.println("使用简化初始给定义的二维数组:"+str2[1][0]);}}整个程序的编译结果:下面详细说明下,程序代码的运行过程:这段代码(for(inti=0;i

6、

7、必须是int[]数组,所以接下来的程序对a[0]元素执行初始化,使右边堆内存中第一个数组元素指向一个有效的数组内存,指向一个长度为2的int数组。因为程序采用动态初始化a[0]数组,因此系统将为a[0]的每个数组元素分配默认初始值:0,然后程序再显式为a[0]数组的第二个元素赋值为6,内存图如下:灰色覆盖的数组元素就是程序显式指定的数组元素值。然后接着迭代输出a[0]数组的每个数组元素,将会输出0(这个因为程序员没有显式指定值,所以是系统默认的值)和6。我们知道,初始化多维数组时,可以只指定最左边维的大小;当然,也可以一次指定每一维的大小。//int

8、[][]b=newint[3][4];这时定义了一个b数组变量,这个数组变量指向一个长度为3的数组,这个数组

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。