关于数组占内存空间的问题

54仰望天空 2015-10-09 03:05:17
最近在看普林斯顿大学的算法公开课,里面提到在使用java编程的时候,一个一维数组,假设他是int 类型的,那么他占有内存的大小是4N+24bytes,如果他是char类型的,则是2N+24 bytes ,N前面的系数我懂,但是那个24是为什么呀?求高手指教!
...全文
470 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
54仰望天空 2015-10-09
  • 打赏
  • 举报
回复
引用 2 楼 windowsoahil 的回复:
这部分固定内存是对象头,不管数组还是其他类的实例都有这部分固定内存,并且根据JVM不同它也不一定是24字节。主要是散列码,也有GC分代之类的信息
那我后来发的那个图呢,前后的object overhead 和reference to array 呢?
fudapeng7 2015-10-09
  • 打赏
  • 举报
回复
貌似是存索引的,类似于内存当中的标识位什么的,
解开者 2015-10-09
  • 打赏
  • 举报
回复
这部分固定内存是对象头,不管数组还是其他类的实例都有这部分固定内存,并且根据JVM不同它也不一定是24字节。主要是散列码,也有GC分代之类的信息
54仰望天空 2015-10-09
  • 打赏
  • 举报
回复
而且其中还提到了reference需要8bytes,object overhead 需要16bytes ,都不太懂是什么意思

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧