探究Python和Java内存管理机制

  每一种编程语言在设计阶段都会考虑一个重要方面:内存管理。内存管理对于一门语言而言,至关重要,因为它是决定语言性能的关键因素。以下分别介绍python和Java的内存管理机制:

python 

    首先介绍python的内存管理机制,python的内存管理机制可以从三个方面来理解:引用计数,垃圾回收和内存池管理。

python不像C++或者Java语言,它不要事先声明变量类型而是直接对变量进行复制,至于该变量对量的数据类型和内存分配问题都是在运行时确定的。这也是为什么python被称为动态类型语言的其一原因。关与动态型,参考https://blog.csdn.net/zhanh1218/article/details/26858295

1、引用计数

    在python中,你每创建一个对象就会同时创建一个该对象的引用计数,这个引用计数动态记录指向该对象的引用数量。比如说创建一个对象1,引用赋值给x,此时1这个对象的引用计数就为1,当创建一个引用别名y指向x时,1对象这个引用计数就为2了。

x = 1
y = 1

x和y是指向同一个对象的,这一点可以通过 id() 方法去查看对象内存地址验证。

对于python内存管理的一个重要条件就是,一旦对象的引用计数为0了,该对象的内存空间就会被垃圾回收器给回收。

补充:

引用计数(x的引用计数)增加的情况:

 1)对象被创建,比如  x = 4

 2)一个新引用指向了对象引用, y

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值