所谓数组指一组相关类型的变量集合,并且这些变量可以按照统一方式来操作、数组本身属于引用数据类型,那么既然是引用数据类型,这里面实际又牵扯到内存分配,数组变量是引用(地址)型变量
数组相关的概念:数组名、元素、角标、下标、索引 、数组长度:元素的个数 length
数组特点: 数组是有序排列的数组属于引用数据类型的变量。数组的元素,既可以是基本了数据类型,也可以是引用数据类型
创建数组对象会在内存中开辟一整块连续的空间
数组的长度一但确定,就不能更改。
数组的分类按照维数:一维数组、二维数组、... ...
按照数组元素的类型:基本数据类型的按钮、引用类型元素的数组
数组的定义1.声明并开辟数组
元素类型[] 数组名 =new 元素类型[元素个数]
如:int[] arr =new int[5];
初始化操作
arr[0]=10;
2、静态初始化数组
数组先开辟内存空间,而后再使用索引进行内容的设置,实际上这种做法都叫作动态初始化,而如果希望数组在定义的时候可以同时出现设置内容,那么就可以采用静态初始化完成。
元素类型[] 数组名 = new 元素类型[]{元素,元素,……};
int[] arr = new int[]{3,5,1,7};
int[] arr = {3,5,1,7};
数组的好处:可以自动给数组中的元素从0开始编号,方便操作这些元素。
数组的特点:数组长度是固定的。
注:使用new关键字分配内存时,简单类型的数组中的元素都有初始值
数组元素的默认初始值
数组元素是整型:0
数组元素是浮点型:0.0
数组元素是char型:0或'u0000',而非'0'
数组元素是Boolean类型:false,Oracle的JVM中采用byte[]方式进行存储
数组内存分配数组是对象,也就是说可以以操作对象的方式来操作数组。并且数组在虚拟机中有它特别的类型。 既然是对象,遵循Java语言中的规则所有类的顶层父类都是Object。数组的顶层父类也必须是 Object,这就说明数组对象可以向上直接转型到Object,也可以向下强制类型转换,也可以使用 instanceof关键字做类型判定
String[]的直接父类就是Object而不是Object[]。可是Object[]的引用也可以指向String[]类型的对 象。数组类直接继承了Object,关于Object[]类型的引用能够指向String[]类型的对象,这种情况只 能是Java语法之中的一个特例,并不是严格意义上的继承。也就是说,String[]不继承自Object[], 但是我可以允许你向上转型到Object[],这种特性是赋予你的一项特权。
数组操作方式数组的访问通过索引完成,即:数组名称[索引],但是需要注意的是,数组的索引从0开始,所以索 引的范围就是0 ~ 数组长度-1,例如开辟了3个空间的数组,所以可以使用的索引是0,1,2,如果此 时访问的时候超过了数组的索引范围,会产生ArrayIndexOutOfBoundsException 异常
当数组采用动态初始化开辟空间后,数组里面的每一个元素都是该数组对应数据类型的默认值 数组本身是一个有序的集合操作,所以对于数组的内容操作往往会采用循环的模式完成,数组是一 个有限的数据集合,所以应该使用 for 循环
在 Java 中提供有一种动态取得数组长度的方式:数组名称.length;
数组遍历通常使用for循环来实现。也可以用foreach实现
暑期编程PK赛 得CSDN机械键盘等精美礼品!


