理解数组:数组也是一种类型

2019 开学计划

理解数组

学生提问:int[]是一种类型吗?怎么使用这种类型呢?

没错,int[]是一种数据类型,看过前面文章的小伙伴们应该会记得,java语言的数据类型分为基本数据类型和引用数据类型,那么int[]就是一种引用数据类型。创建int[]类型的对象就是创建数组,需要使用创建数组的语法。

数组是编程语言中最常见的一种数据结构,可以存储多个数据,通过数组的索引号来访问数组元素。Java语言的数组要求数组的元素具有相同法人数据类型,所以,在一个数组中,数组元素的类型是唯一的,也就是只能存储一种数据类型的数据。Java的数组既可以存储基本类型的数据,也可以存储引用类型的数据,只要所有数组元素的类型相同即可。

一旦数组初始化完成,数组在内存中所占的空间就被固定下来了,所以数组的长度不可改变。

01

定义数组

Java语言支持两种语法格式定义数组:

type[ ] arrayName;

type arrayName[ ];

一般推荐第一种格式定义数组,为什么?因为第一种格式具有更好的语义和可能性。

定义数组时不能指定数组的长度。数组是一种引用类型的变量,使用它定义变量时,仅仅表示定义了一个引用变量(也就是定义了一个指针),这个引用变量还未指向任何有效的内存,所以还未有内存空间来存储数组元素,因此这个数组也不能使用,只能对数组进行初始化后才可以使用。

02

数组的初始化

Java语言中数组必须先初始化再使用,所谓初始化,就是为数组的元素分配内存空间,并为每个元素赋初始值。

数组的初始化有如下两种方式:

1)静态初始化:初始化时由程序员显示指定每个数组元素的初始值,由系统决定数组的长度。

静态初始化语法格式如下:
arrayName = new type[ ]{e1,e2,e3 ... };

例如,定义一个int数组类型的变量,变量名为intArr:

int[ ] intArr;

然后使用静态初始化,初始化数组时只指定数组元素的初始值,不指定数组的长度:

intArr = new int[ ]{3,6,7,9};

在实际开发中,习惯性的将数组的定义和初始化同时完成,即:

int[ ] a = {2,4,5,5};

2)动态初始化:初始化时程序员只指定数组长度,由系统为数组元素分配初始值。

动态初始化的语法格式如下:

arrayName = new type[length];

例如:int[ ] a = new int[5];

03

使用数组

数组最常用的用法就是访问数组,包括对数组元素进行赋值和取出数组元素的值,一般通过数组元素在数组的索引号进行访问数组,索引号从0开始。

假如有一个数组int[] a = new int[2];分别赋值为:a[0]=1;a[1]=2;输入a数组的第一个元素:System.out.println(a[0]);

如果输出a[2]会怎么样呢?答案是运行时会报异常:

java.lang.ArrayIndexOutOfBoundsException:N(数组索引越界异常),异常后的N就是程序员试图访问的数组索引号,这个异常是java常见的异常,大家可以把这个异常记住,防止发生同样的异常。

陪伴是最长情的告白

每日为你推送Java技术干货

识别二维码→

关注→

喜欢点击“在看”

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值