JAVA-初步认识-第四章-数组-概述和定义

注解:数组的概念是同一种类型数据的集合,是一个容器。对比变量,一样是数据集合,一样是容器,只是集合大小为1,容器比较小。对于来到数组中的元素,数组还自动进行了编号,如果不编号的话,无法对每一个元素进行操作,也没法区分。这里谈到数组的书写格式,怎么写计算机才能识别出来,这是计算机语言的语法之一。延伸出来讲的话,每一个介绍的知识点,我们都必须熟悉它的书写格式。数组名也可以看作是变量名(这里讲述不够正确,数组不用有名字,有内存地址即可;变量名是在栈中开辟的内存,两者挂等号号是为了引用数组中的数据。),变量就是变化的东西的代表。数组中的元素也是在变的,自然数组也属于变量。

深思一下数组,之前基本数据类型的变量,一个数据对应着一个变量名,但是这里的数组,是多个元素数据对应着一个数组变量名。如果想细致地了解里面的元素,就必须使用数组自动编写的号码,即所谓的索引。因此,在数组中的元素,我们不直接写出它的数据,而是以数组变量名和索引来表示,也就是内存地址编码来表示,这和基本数据类型的表示完全不同,一个是路径,一个是直接的数据。(这里的理解不太对)

→为什么这里介绍数组?数组的知识点是接在函数的后面讲的,也就是说持续讲解地都是引用数据类型的知识点。

一. 数组的定义

变量一次只能存储一个数据,要想存储更多的数据,要么定义很多的变量,要么用很大的容器来装(数组的由来),我以为数组是一个大容器,一次性可以将很多常量装进去。但实际上,貌似是将很多变量装载进去。数组是变量的集合体,内部被划分为多个空间,空间内的数据可以不断变化。→这里讲解不完全正确,对于数组中的数据,并没有对每一个数据给定变量名,而是给定的内存地址编号。整个数组的可以用变量名来表示。

装载的过程中有要求,数据必须是同一类型的。

编号是为了方便记录存储(换个角度说,它给栈使用该数据时,指明了引用的地址),号码代表着不同的数据(不对,是不同空间的地址)。数组是自动对组内的元素进行编号(编号更深层的含义是对空间的划分),从0开始。

二. 格式

java语言中的数组表现格式和其他语言不一样。

变量是存储一个数据,而数组是存储很多数据。存储很多东西的容器是实体,内存中开辟一个实体区别于其他东西,需要定义一个关键字,就是new。new可以看成新建。→数组的建立和变量在内存中的生成是不太一样,用了关键字new。

新建了一个存储int类型的数组。

数组这个概念有一个特点,一旦建立,就必须明确它的长度。说是明确长度,实际上是在自动编号,分配内存空间地址。

任何数字在使用的都得有个名字,

注解:new int[]; 这个语句的意思就是新建一个int类型的数组,或者说实体。但是新建的时候,必须要明确这个数组或实体有多大,能装多少数据,new int[3]。新建了能装3个变量的数组,为了使用它,我们要给它起一个名字,即arr=new int[3]; java是强类型语句,在使用arr时,必须要指定这是什么类型,如果写成int arr=new int[3];那么就意味着,在int类型的变量里装载了数组,这肯定是不行的。因此,要写成[] arr=new int[3]; 在标明arr是数组类型时,还要说明数组里面装的是什么类型的变量,因此,最终的书写为 int[] arr=new int[3];

三. 使用

现在,我们要使用数组里面的元素。我们都知道数组是对元素自动进行了编号,要想使用数组里的某一个元素,要写成arr[0],这里0称作角标,术语叫索引。System.out.println(arr[0])这样做就是在取出arr数组0索引的数据。

如果数组中索引没有被赋值,那么索引有默认值,都是0。如果要给某一个数组的某一个索引赋值,可以写成 arr[1]=89;