首页 > 代码库 > 普林斯顿公开课 算法1-6:内存
普林斯顿公开课 算法1-6:内存
讲完了算法的运行时间,现在讲一下关于算法的内存占用率。
内存单位
在计算机中,内存是通过字节来表示的,一个字节表示8个位。1KB是2^10字节。
数据类型占用的内存
在32位系统中,一个指针占用4个字节。在64位系统中一个指针占用8个字节。本课程中使用64位机器,一个指针占用8字节。
基本数据类型
以下是Java中基本数据类型占用的内存
boolean 1字节
byte 1字节
char 2字节
int 4字节
float 4字节
long 8字节
double 8字节
Java数组
Java中每个数组需要24字节的额外开销,所以数组占用的内存如下:
char[] 2N+24字节
int[] 4N+24字节
对于二维数组,近似的内存占用如下:
char[][] ~2MN
int[][] ~ 4MN
Java对象
每个对象的额外开销是16字节,每个引用的开销是8字节。对象中的每个成员变量会按照8字节进行对齐。
深内存和浅内存
浅内存使用量就是将成员变量的内存占用相加。每个引用按照8个字节进行计算。
深内存使用量除了成员变量以外,还需要将它引用对象占用的内存计算在内。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。