Java中的数组

来源:互联网 发布:台atm机遭植软件 编辑:程序博客网 时间:2024/06/04 19:31

数组的声明格式里,数据类型是数组元素的数据类型,常见的有整形、浮点型、与字符型等;
数组名是用来统一这组相同数据类型元素的名称,其命名规则和变量的相同;
数组声明后实际上是在栈内存中保存了此数组的名称,结下了是要在堆内存中配置数组所需要的内存,齐产固定是告诉编译器,所声明的数组要存放多少个元素,而new 则是命令编译器根据括号里的长度开辟数组空间,例:

数组操作中,在栈内存中保存的永远是数组的名称,只开辟了栈内的空间,数组是永远无法使用的,必须有指向的对内存才可以使用,要想开辟新对内存空间必须使用new关键字,之后就是将对内存的使用权交给对应的栈内存,而且一个堆内存空间可以同时被多个栈内存空间指向,比如一个人可以有多个名字,人就相当于对内存,名字就相当于栈内存。

多维数组变量也是引用类型数组变量的一种。对于数组int array[2][],变量array储存在栈内存中,它指向堆内存中的一个包含两个元素的数组。其中每个元素的类型是一个引用类型(一维数组类型),并指向一个实实在在的数组,原理同上。定义二维数组必须指定其行数,列数可以指定,可以不指定。

二维数组初始化时至少要确定最高维的大小,例:int a[][] = new int[2][]; 而int a[][] = new int[][];则会编译出错。

转自http://blog.csdn.net/siasboy/article/details/6525352

数组是对象,继承自Object,因为new Object[0].getClass().getSuperClass()是Object.class,唯一比Object多一个成员变量length,而且应该是public的;数组没有对应的类文件,String对应String.class,但是数组却没有,而且他们的类名字很古怪,可以这样获得 new int[2].getClass().getName(); 这是和其他对象最大的不同点,因为数组类是在运行时生成的。

可以很肯定的说数组是一种类型,但是它绝不是类。类型是编译器相关的概念,其抽象性跟面向对象无关。类是面向对象中的一个概念。他们不在同一个级别。

原创粉丝点击