Java数组
数组的定义:
数组是相同类型数据的有序集合。数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成。其中,每一个数据称作一个元素,每个元素可以通过一个索引(下标)来访问它们。
数组的基本特点:
长度是确定的。数组一旦被创建,它的大小就是不可以改变的。
其元素必须是相同类型,不允许出现混合类型。元素的类型可以是java 支持的任意类型
数组类型可以是任何数据类型,包括基本类型和引用类型。
数组的元素在堆内存中被分配空间,并且是连续分配的
使用new 关键字对数组进行 内存的分配。每个元素都会被jvm 赋予默认值。默认规则:整数:0 浮点数:0.0 字符:\u0000 布尔:false 引用数据类型:null。
6.数组的元素都是有序号的,序号从0开始,0序的。称作数组的下标、索引、角标
数组的声明:
声明的时候并没有实例化任何对象,只有在实例化数组对象时,JVM才分配空间,这时才与长度有关。
声明一个数组的时候并没有数组真正被创建。
构造一个数组,必须指定长度。
数组格式:
元素类型[ ] 数组名 = new 元素类型 [元素个数或数组长度]; int [] arr = new int [3];
[]:代表这是数组类型。
数组名:一个合法的标识符,命名规范 和 局部变量 规范一致。
new:是java 的关键字。用来向JVM申请内存的。
元素类型[元素个数] :决定了向JVM申请的内存空间的大小。
从一开始学习变量存储一个数据,肯定满足不了同时存储多个数据,所以这里学习数组。
// 一个数组的基本定义
// 数据类型 数组名字 = new 数据类型[个数];
int[] arr = new int[5];
int arr2 [] = new int[5]; // 不建议用这种
int[] arr3 = {1,2,3}; // 这时候数组的长度就为数据个数 3 最大下标就是 2
// 从上面的定义可以知道,这数组是一个定长的,并且长度为 5
// 怎样能体现出它的定长呢?
// 用序号存储数据 序号从0起
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
arr[5] = 6; // 这一个就会报错,报错的异常叫数组下标越界异常
// java.lang.ArrayIndexOutOfBoundsException
数组的定长就体现在这里,当你数组的长度固定后,你的最大下标(序号)就是长度减一。
一旦超过这个数值的时候就会出现上面的数据下标越界异常。
// 上面是创建数组,存储数据,那取呢?
int[] arr3 = {1,2,3};
// 取数据同样使用下标来取
arr[0]; // 1
arr[1]; // 2
arr[2]; //3
除了以上这个错误还有的情况是不能声明时候的类型与存储的类型不一致!
int a = new int[9];
a[0] = "asd"; // 编译无法通过,因为这是一个 int 数组,不能存储字符串