黑马程序员----数组变量的声明

---------------------- 黑马程序员 Android培训、期待与您交流! ----------------------


概念:同一种类型数据的集合。其实数组就是一个容器

数组的定义方式:元素类型[] 数组名 = new 元素类型[元素个数或数组长度];
好处:数组可以存储多个数据,而且可以对数据进行编号,从0开始。操作元素完成可以通过编号(索引)完成。

Java中的数组跟C/C++这些语言中的数组的语法结构很相似。但是,Java去掉了C/C++中的可以使用指针来访问元素的功能。这种在C /C++中被普遍接受的功能虽然强大,但是也使所开发的软件中更容易出现Bug。Java不支持这种直接通过指针来操纵数据的功能,因此这类的Bug也被消除了。

数组的功能是存储同一类型的值。在程序中使用数组移动或保存一组数据并且根据需要访问和改变这些值相当简便。例如,可以创建一个String类型的数组,每一个元素都包含一个运动员的名字。数组可以传送给一个需要访问每个队员名字的方法。如果一个新队员加入,其中任何老队员的名字可以被修改成新队员的名字。显然这比使用player1、player2、player3等很随意的不相关的变量方便很多。跟变量通过变量名来访问不同,元素通过从0开始的数字来访问。因此,可以一个个地访问数组的每个元素。

数组对象用new关键字来创建,并且有属于主要父对象类的方法。

声明一个数组不需分配任何存储空间,仅仅是代表试图创建一个数组。跟C/C++声明一个数组的明显区别就是声明Java数组时,空间的大小没有被特别标识。下面的声明将会引起一个编译期错误。

int num[5];

一个数组的大小将在数组使用new关键字真正创建时被给定,代码如下:

int num[];
num = new int[5];

可以认为命令new的使用跟初始化一个类的实例的使用是类似的。这个例子也可以使用一行语句完成:

int num[] = newint[5];

方括号也可以放在数据类型后面或者数组名后面。下面的两种都是合法的:

int[] num;
int num[];

分别读作:

一个名字为num的整型数组。

一个数据类型为整型,名字为num的数组。

Java语言支持对意外的移动到数组末端的保护。这也可以帮忙避免一些在C/C++程序中很难发现的错误,例如移动到了数组末端并且指向了任意内存地址。

下面的程序会引起一个ArrayIndexOutOfBoundsException异常。示例代码如下:

int[] num= new int[5];
for(int i =0; i<6; i++){
    num[i]=i*2;

}

在数组声明中,[]标记可以放在变量名称的前面或者是后面。多维数组是通过构建可以包含对其他数组的引用的数组来创建的。表达式new int [4][]将创建一个长度为4的数组,该数组可以包含对int型的数组引用。表达式new int [4][4]将创建一个同样长度的数组,但是每个数组元素将包含另外4个int值,表达式new int[][4]是无效的,因为多维数组必须从左到右来创建。

Java对内存空间的划分:五部分:栈,堆,方法区,本地方法区,寄存器。

栈内存:存储都是局部变量。只要是在方法中定义的变量都是具备变量。一旦变量的生命周期结束该变量就被释放。

堆内存:存储都是实体(对象)。每一个实体都有一个首地址值。堆内存的变量都有默认初始化值。不同类型不一样。int-0  double-0.0  boolean-false char-'\u0000'      当实体不在使用时,就会被垃圾回收机制处理。

---------------------- 黑马程序员 Android培训、期待与您交流! ----------------------

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值