java:普通数组和对象数组都是连续的内存空间吗?

那如果我每个对象数组中没存对象、存的都是null的话这段连续空间我没用到但是也是占用内存的是吗?和我数组中存没存东西或者存的东西没关系吗?申请多大的就占用多大的吗?... 那如果我每个对象数组中没存对象、存的都是null的话 这段连续空间我没用到 但是也是占用内存的是吗?
和我数组中存没存东西或者存的东西没关系吗?申请多大的就占用多大的吗?
展开
 我来答
市景彰曲平
2020-02-08 · TA获得超过3.1万个赞
知道大有可为答主
回答量:1.2万
采纳率:27%
帮助的人:668万
展开全部
是的,不但在java里,在其他编程语言里,数组都占用连续的内存空间,这样在索引时能够快速地通过偏移来进行下标定位索引数据
FireShowX
2012-11-08
知道答主
回答量:22
采纳率:0%
帮助的人:3.6万
展开全部
不管是null还是undefined,都会占空间,这个空间应该就是指向null和undefined地址的指针,看起来是1个字节。除非delete它! 想经常报的空指针异常就是 到内存查到了null的对象......
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
shadow_wxl
2012-11-08 · 超过14用户采纳过TA的回答
知道答主
回答量:72
采纳率:0%
帮助的人:45.8万
展开全部
只要定义了就占内容空间,占用空间的大小取决于你定义数组的大小
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fatg1988
2012-11-08 · 超过12用户采纳过TA的回答
知道答主
回答量:58
采纳率:0%
帮助的人:32.6万
展开全部
每个对象数组中没存对象、存的都是null的话 只占用一字节空间
只有在new一个对象时 内存空间才开辟出来
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1a76e4f
推荐于2016-07-22 · TA获得超过602个赞
知道小有建树答主
回答量:388
采纳率:0%
帮助的人:257万
展开全部
从语法定义上看,java数组对象相当于C语言中类似定义一个指针类型数组。

java基础类型和对象类型的空内存消耗情况在java1.4,1.5,1.6,1.7中都不同。
这个不同时根据计算机硬件发展做出的权衡,一般就是空间和速度之间的权衡。

不管怎么样,对于纯java开发人员来说,其实不需要关心java数组内存是不是连续的,因为java是一个抽象级VM,是不是连续的是由VM来决定的,对于开发人员只需要理解java给你提供的开发接口和性能参考就行了,可以肯定是是数组下标访问的速度肯定非常快。

从JNI角度看java数组对象,与C语言通信时jni接口接收的数组类型是连续内存的。

如果非要深究到底怎么实现的,需要看vm源代码,目前开放的open jdk可以作为参考,有兴趣可以去研究一下。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式