055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念

时间:2022-07-02 00:34:50

055 01 Android 零基础入门 01 Java基础语法 06 Java一维数组 02 数组的概念

本文知识点:数组的概念

数组的声明创建、初始化

在学习数组的声明创建、初始化前,我们可以和之前的变量的声明创建、初始化进行对比来学习。

那我们来看一下数组的声明,先来看一下语法格式。

数组的声明

数组声明语法格式1

数组声明格式1:

数据类型 [] 数组名;

变量声明格式:

数据类型 变量名;

数组声明相比变量声明,在数据类型后增加了一个中括号。而数组名的命名规则和变量名的命名规则是一致的。它本身是一个标识符,要满足标识符的命名规则。并且像变量名一样,如果数组名是由一个单词组成的,所有字母都是小写的。如果由多个单词组成的,第一个单词全部小写,从第二个单词开始,首字母全部大写。

数组声明语法格式2

数组声明格式2:

数据类型 数组名 [];

说明一下,为什么数组声明有这两种形式:

因为其他的编程语言,比如说C语言,C++,大家都是把中括号写在数组名的后面(即和我们学习的Java数组声明语法格式2相同)。Java为了和其他编程语言进行区分呢,Java就创建了自己的命名方式。就是把中括号写在数据类型的后面(数组声明语法格式1)。那么,第一种数组声明的语法格式才是我们在Java进行数组声明的时候,常用的形式。

案例练习如何声明数组——使用2种语法格式

声明一个整型数组如下:

int [] myIntArray ;

int myIntArray [];

以上两种声明方式都是正确的。

当然,如果你要生成其他类型的数组呢,就把相应的数据类型的名称进行改变即可。比如我们生成一个char类型的数组、生成字符串String类型的数组。

记住:字符串本身是一个类。这块内容后续我们学习面向对象的内容后,就知道了。借助类可以创建对象,所以String作为一个类,创建String类型的数组就是对象数组

以上是数组的声明。

然后我们看下数组的创建。

数组的创建

数组创建形式1:

先声明、后创建

1、先去声明一个数组

2、再去创建数组

如何创建呢?数组创建形式1:

数组名 = new 数据类型[数组长度];

new是一个关键字,在后面的面向对象程序中呢,我们会遇到很多次new,new关键字其实是在创建一个对象。目前我们先知道有这个概念即可。对于数组问题,我们知道new是在创建数组即可。

例题:声明并创建一个长度为10的整型数组:

int [] arr;//声明数组
arr = new int[10];//创建数组

数组创建形式2:

声明数组的同时创建数组:

这个类似变量的初始化,但是数组中不叫初始化,稍后我们对初始化的内容进行演示。

数组创建形式2:

数据类型 [] 数组名 = new 数据类型[数组长度];

注意:

1、创建数组时,数组长度必须被指定,如果没有指定,是错误的。

2、声明时(赋值号=)左边的中括号写在数组名之前、数组名之后都是正确的。

055 01 Android 零基础入门  01 Java基础语法 06 Java一维数组 02 数组的概念

数组在内存中的存储

我们前面学习变量的时候学习了:定义一个变量之后,变量就会在内存中存储。同样地,定义数组之后,也会在内存中分配内存空间,用来存储数组中的数据。而数组比较特别的一点是:数组在内存中分配的,肯定是一段连续的内存空间

比如,我们定义一个整型的数组a:

int [] a = new int [5];

a是一个长度为5的整型数组,会在内存中开辟一块连续的内存空间。并且数组的默认值,对于整型数组来说,它的默认值都是0。所以我们知道,在这片连续的内存空间当中,每个数组元素的值都为0。就是说,长度为5的数组,它肯定有5个元素。那么这5个元素,它的每一个元素的元素值都是0。而我们的数组名本质是一个对象(数组是引用数据类型,即类类型,类创建的就是对象),它(数组名)是指向数组的第一个元素。这点在后面进行方法传值的时候是非常重要的。

055 01 Android 零基础入门  01 Java基础语法 06 Java一维数组 02 数组的概念

这是数组的存储形式,需要注意的是:

数组的数组元素都有默认的元素值。后面我们会学习,其他数据类型创建的数组的数组元素的默认值都是什么!

这里,我们在强调一点,即局部变量。局部变量(在主方法中、在循环中我们学习的)都是没有默认值的。我们之前遇到过类似的问题,我们需要给局部变量进行赋值的。但是数组是有默认值的。因为数组的本质是对象

数组的初始化

初始化的定义:声明的同时给变量赋值

我们前面看到的new 数据类型[数组长度]; 不叫初始化,而叫做创建对象。

055 01 Android 零基础入门  01 Java基础语法 06 Java一维数组 02 数组的概念

注意:

1、元素之间用逗号分隔(英文逗号)

2、整个代码书写都必须是在英文输入法状态之下的 否则,会报错。

上面的问题也是初学者经常会犯的错误。

那么数组长度是什么呢?数组长度:数组初始化时所给元素的个数,即为数组长度

比如上面的例子中:

int [] arr = {1,2,3,4,5,6,7,8,9,10};

从1到10共计10个元素,那么数组长度就是10。

接下来,我们再看一下数组元素的引用

数组元素的引用

前面提到过了,总说定义长度为10的数组,那么对于数组当中的每一个元素是如何进行表示的呢?

我们来看一下语法格式:

数组名[数组元素下标]

这里面,注意一下,数组元素下标是整型的数字,并且数组元素下标是从0开始的,其实整个“数组名[数组元素下标]“ 这样一个整体, 我们可以把这个整体看做是一个变量名

我们看一下数组元素的引用的一个图例。

int [] a = {1,2,3,4,5,6,7,8,9,10};

10个元素对应10个连续的内存空间中。注意:数组一定是存放在连续的内存空间中。

我们把:

第1个元素表示为a[0], 注意,数组下标从0开始。

第2个元素表示为a[1]

第3个元素表示为a[2]

……

第10个元素表示为a[9]

这就类似变量和变量值之间的对应关系。比如,我们定义一个变量n:

int n = 10;

那么,n是变量名,10是变量值。同样的,a[0]表示数组a给1个位置处的数组元素起的名字,所以,我们说可以把a[0]这个整体看做一个变量名。而它所对应的值就是1。

数组元素引用的问题中,始终要记得:数组元素下标是从0开始。重要的事我已经说了三遍,不行你回顾文章数一数。

055 01 Android 零基础入门  01 Java基础语法 06 Java一维数组 02 数组的概念

数组的长度

上面数组初始化的时候提过,数组长度就是数组元素的个数

在数组中,还有一个属性 ,叫做length。length属性是表示数组长度的。如何使用属性呢?

使用格式:

数组名.length

使用方法类似我们前面从键盘接收数据时用到的sc.nextInt(); nextInt()有括号,而length属性没有括号。因为nextInt()是方法,需要括号。而length是属性,不需要括号。这些后面面向对象的知识会涉及到,现在有个了解就好了。(其实都是引用数据类型,对象引用属性或者对象饮用方法的形式)

Scanner sc = new Scanner(System.in);
sc.nextInt();

055 01 Android 零基础入门  01 Java基础语法 06 Java一维数组 02 数组的概念