目录
数组的概念
-
数组Array,标志是[ ] ,用于储存多个相同类型数据的集合
-
想要获取数组中的元素值,可以通过脚标(下标)来获取
-
数组下标是从0开始的,下标的最大值是数组的长度减1
-
图像解析
数组的定义
-
数组是相同类型数据的有序集合
-
数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成
-
其中,每一个数据称作一个数组元素,每个数据元素可以通过一个下标(索引)来访问他们。(数组的下标排序是从0开始的)
数组的声明
-
首先声明数组变量,才能在程序中使用数组。
-
声明数组变量的语法:
dataType[] arrayRefVar; //首选方法 int [] array; 或 dataType arrayRefVar[]; //效果相同但不是首选方法。(这个C++的语法,是为让从C++工程师更快的了解Java设定的) int array[];
创建数组
-
Java语言使用new操作符来创建数组
-
数组的创建方式一般分为动态初始化和静态初始化
-
静态初始化------------------------------------------------------------------------>知道了数组中存放的集体元素
int [] num = {1,2,3,4}; Man[] mans = {new.Man(1,1),new Man(2,2)};
-
动态初始化------------------------------------------------------------------------>先指定类型与长度,后续再存自定义的值
int[] a = new int[2]; a[0] = 1; a[2] = 2;
-
数组的默认初始化:
数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素
也被按照实例变量同样的方式被隐式初始化。
创建数组过程分析
-
程序创建数组 int[] a = new int[5]; 时发生了什么?
-
在内存中开辟连续的空间,用来存放数据,长度是5
-
给数组完成初始化过程,给每个元素赋予默认值,int类型默认值是0
-
数组完成初始化会分配一个唯一的地址值
-
把唯一的地址值交给引用类型的变量a去保存
-
可以根据下标改变元素的值
-
注意
-
数组名是个引用类型的变量,它保存着的是数组的地址值,不是数组中的数据。不可以直接打印具体内容
-
由于Java对char类型做了底层处理,所以char[]可以直接打印具体内容
-
但除了char类型以外,其他任何类型的数组想要查看数组中具体元素,需要借助数组的工具类来完成
-
需要使用数组的工具类Arrays的toString(数组名)
-
代码实现
public static void main(String[] args) { char[] b = {1,2,'中',4,'A'};//可以定义数字但是会输出空格(方块) int[] a = {1,2,3,4,5}; System.out.println(a);//[I@1b6d3586 地址值 System.out.println(b);//••中•A System.out.println(Arrays.toString(a));//[1, 2, 3, 4, 5] }
数组的长度
数组的长度用 length属性来表示,数组一旦创建,长度不可改变 数组的长度允许为0
array.length //array : 定义的数组名字
数组的四个基本特点
-
其长度是确定的。数组一但被创建,它的大小就是不可变的。
-
其元素必须是相同类型,不允许出现混合类型
-
数组中的元素可以是任何数据类型,包括:基本类型和引用类型
-
数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。
数组本身就是对象,Java中对象实在堆中的,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中的。
数组边界
-
下标的合法区间:[0,length-1],如果越界就会报错;
-
ArrayIndexOutOfBoundsException:数组下标异常
小结
-
数组是相同数据类型(数据类型可以是任意类型)的有序集合
-
数组也是对象。数组元素相当与对象的成员变量
-
数组的长度是确定的,不可变的。如果越界,就会报:ArrayIndexOutOfBoundsException: