本章将以 Java 语言为列,深入浅出介绍数组。
此部分主要介绍所有编程语言中基本都会涉及到的数据结构:数组。数组相信大家都会使用,但是当面试过程中闻到涉及到内存分析、数据结构对应的算法时,总会有让你猝不及防的地方,比如数组的内存模型分析?本章主要以 Java 语言为列,以阿里巴巴的面试题为主,围绕以下话题深入浅出进行讲解:
1. 数组结构
首先,什么是数组?数组好比一个“储物空间”,可以有顺序的储存同种类型的“物品”。您可以设定它的大小,也可以设定它存储“物品”的类型。
数组有一维数组,二维数组。实际上数组有点类似于我们数学中的矩阵。
如图:
image
图中有两个数组,数组 1 和数组 2。数组的下标从 0 开始,我们可以通过下标来获取数组中存储的元素。例如通过 TCoolNum1[0],可以获取 111,通过 TCoolNum2[2]得到字符串“cool”。
num1 存储的即为类型为整数的“物品”,其长度为 10,数组 2 存储的类型为字符串的“物品”,数组的长度为 7,虽然该数组只存储了 3 个字符串,但是该数组在声明的时候申请长度为 7 的内存空间,尽管没有全部存储,但是占用的内存空间并不改变。