怎么判断数组在内存中所占字节数_程序员必知的算法和数据结构:程序内存消耗的量化表示...

前言:

Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了收藏已久的视频教程分享给大家!希望能带给大伙儿一些学习上的帮助

觉得好的话可以多多关注哟~

每天持续分享更多优质内容!

2f65c1e63168e3f826ade4b52b829fa4.gif

内存消耗

除了需要考虑时间成本,我们也要注意内存消耗。内存消耗在Java程序中很好地被定义,但是java程序可以编译在各种不同配置环境的计算设备上,内存消耗因实现方式不同而不同,在这里讨论java中三种类型的内存消耗。

原生类型(Primitive types)

例如,因为java int数据类型是整数值的集合,取值范围位于:−2,147,483,648 ~ 2,147,483,647,所占的字节数为4个。如下图所示为主要原生类型所占的内存字节数:

901baf2c3355534ded1803a9417cade7.png

对象(objects)

为了确定一个对象的内存消耗,我们需要求以下两者的和:

  • 每一个实例的内存消耗
  • 每一个对象关联的头部消耗,典型的是8个字节

例如,一个复数对象消耗内存为32个字节,其中16个字节被头部所占,另外,每个double变量各占8个字节。

f4591049925b6edefe6d75fea1772b7b.png

对一个对象的引用通常消耗8个字节的内存。当一个数据类型包含一个对象的引用时,我们必须单独分配8个字节用于存储引用关系,每个对象的头部消耗16个字节,还包括此对象的实例变量所耗内存。

数组和字符串(Arraysand strings)

在java中,数组是通过objects被实现的,典型的实现方法:带有2个实例变量,一个指针指向第一个元素的首地址,另一个指向元素长度。对于原生类型,含有 n个元素的数组用24字节的头部信息,另外包括存储一个元素需要的字节数乘以元素个数。典型的例子如下:

c50d01089909675fb9bbd754015bfcd9.png

好啦!文章就给大家分享到这儿,如果你跟我一样都喜欢python,也在学习python的道路上奔跑,欢迎你加入python学习群:839383765 群内每天都会分享最新业内资料,分享python免费课程,共同交流学习,让学习变(编)成(程)一种习惯!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值