数组的定义与使用

数据类型 数组名称[ ] =null; //声明数组
数组名称 = new 数据类型[长度]; // 分配内存给数组

另一种声明数组的方式:
数据类型[ ] 数组名称=null; //声明一维数组

数据的声明格式里,“数据类型”是声明数组元素的数据类型,常见的类型有整形、浮点型与字符型等。

栈内存:保存指向数组实体的地址的名称(数组名)
堆内存:保存数组中的数据
地址:
int score [ ]=null; //声明整形数组 score
score = new int[3]; //为整数型数组score分配内存空间,其元素个数为3

声明数组的同时分配内存:
int score[ ] = new int[10]; //声明一个元素个数为10 的整形数组score,同时开辟一块内存空间供其使用。
当声明一个整形数组score时,score可视为数组类型的变量,这个变量没有任何内容,编译器仅会在栈内存中分配一块内存给它,用来保存指向数组实体的地址的名称。如下图:

在这里插入图片描述

堆内存分配:
score = new int[3];
开辟了3个可供保存整数的内存空间,并把此内存空间的参考地址赋给score变量,内存分配的流程图如下图:
一个数组开辟了堆内存之后,将在堆内存中保存数据,并将堆内存的 操作地址给了数组名称score。
数组是引用数据类型,因此数组变量score所保存的并非是数组的实体,而是数组堆内存的参考地址。
在这里插入图片描述

数组声明的疑问:
为什么在数组的声明上要写一个“null”?如“int score[ ]=null;”
null表示引用数据类型的默认值,数组属于引用数据类型,对于引用数据类型来说其默认值就是null,表示暂时还没有任何指向的内存空间。在JDK1.5之后可以不用给数据默认值。
堆栈内存的解释:
数组操作中,在栈内存中保存的永远是数组的名称,只开辟了栈内存空间数组是永远无法使用的,必须有指向的堆内存才可以使用,要想开辟新的堆内存必须使用new关键字,然后是将此堆内存的使用权交给了对应的栈内存空间,而且一个堆内存空间可以同时被多个栈内存空间指向,即一个人可以有多个名字,人相当于堆内存,名字就相当于栈内存。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值