数组 - 图1

1、为什么会出现数组,它解决了什么

其实很简单,大量的数据出现了,但是缺少将数据存放起来的容器。因此数组出现了。

2、数组的基本概念

数组就是固定大小,里面的元素类型一致的容器

3、同类型的技术对比

除了数组,还有其他的容器类型,比如Collection家族,Map家族,Queue家族等等。

它们各有优劣,但是和数组显著的区别就是数组是定义好之后不可改变容器大小的,而其他的是可以改变的。

4、基本使用

对于数组,有以下几个方面:

  • 对于容器:创建,大小,非空断言
  • 对于单个数据(受到容器自身特性的约束):CRUD,转为其他容器内容(以后说)

对于容器

创建数组

数组定义有三种方式:

  • 类型[] 名字 = new 类型[长度]; int[] arr = new int[3];
  • 类型[] 名字 = new 类型[]{元素1,元素2,元素3,....} int[] arr = new int[]{1,2,3,4,5}
  • 类型[] 名字 = {元素1,元素2,元素3,....} int[] arr = {1,2,3,4,5}

数组在创建的时候必须指定且只能指定一次长度,因为数组的容量是不可以变化的 第一种方式,在创建的时候就已经指定了长度,但是没有指定元素。 第二种和第三种方式,在创建的时候直接指定了固定的元素,也相当于指定了长度。

获取大小

数据名.length arr.length

非空断言

数组非空断言和数组中的内容非空断言:

  1. public static void main(String[] args) {
  2. int[] arr = null;
  3. //数组非空断言
  4. System.out.println(arr==null);
  5. arr = new int[]{1, 2, 3, 4};
  6. //元素非空断言
  7. System.out.println(arr.length>0);
  8. }

对于单个数据

读取数据

访问数组数据可以通过下标(索引)来访问,比如:arr[0]

更新数据

直接根据数组下标进行数据的更新操作: arr[0] = 1;

5、原理探究

很明显,数组是new出来的,而new出来的都放在堆里

数组 - 图2

数组是引用类型,非常明显 1、Main方法 2、新建数组,放到堆中,引用给变量