Algs4-1.4.33 32位计算机中的内存需求

1.4.33 32位计算机中的内存需求。给出32位计算机中Integer、Date、Counter、int[]、double[]、double[][]、String、Node和Stack(链表表示)对象所需的内存、设引用需要4字节,表示对象开销为8字节,所需内存均会被填充为4字节的倍数。
答:
Integer:
对象开销8字节+1个int4字节=12字节

Date:
对象开销8字节+年月日3个int12字节=20字节

Counter:
对象开销8字节+name引用4字节+1个int型count4字节=16字节

int[]:
对象开销8字节+int型数组长度4字节+数组长度个4字节=12+4N

double[]:
对象开销8字节+int型数组长度4字节+数组长度个8字节=12+8N

double[][]:
设MXN数组,第一维数组对象开销8字节+第一维数组长度4字节+M个对第二维数组的引用4M字节+M个第二维数组长度
M个第二维数组长度=M个(对象开销8字节+数组长度4+N个8字节)
最终=12+4M+M(12+8N)=12+16M+8MN

String:
字符数组引用4字节+3个int12字节+char数组引用4字节+N个数2字节字符个数
最终=18+2N(填充为4的倍数)

Node:
对象开销8字节+一个item引用4字节+一个next引用4字节=16字节

Stack:
对象开销8字节+first节点引用4字节+1个stack长度int4字节+每个元素Node16字节=16+16N

附件:

图片

图片

图片

图片

图片

图片
图片


原文地址:https://www.cnblogs.com/longjin2018/p/9854507.html