码迷,mamicode.com
首页 > 其他好文 > 详细

普林斯顿公开课 算法1-6:内存

时间:2014-06-01 16:24:44      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:算法

讲完了算法的运行时间,现在讲一下关于算法的内存占用率。


内存单位


在计算机中,内存是通过字节来表示的,一个字节表示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个字节进行计算。


深内存使用量除了成员变量以外,还需要将它引用对象占用的内存计算在内。

普林斯顿公开课 算法1-6:内存,布布扣,bubuko.com

普林斯顿公开课 算法1-6:内存

标签:算法

原文地址:http://blog.csdn.net/caipeichao2/article/details/27849949

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!