【问题标题】:Do integer variables in Python hold pointers to int objects in memory?Python中的整数变量是否保存指向内存中int对象的指针?
【发布时间】:2020-09-09 15:16:21
【问题描述】:

我正在阅读一篇文章,说 Python 中的一切都是对象。

所以我想研究一下 Python 中的整数是如何在内部存储的,但不幸的是我没有得到好的答案。

我的问题是 Python 中的整数变量是否在内存中保存指向整数对象的指针,或者它们是否只是按原样指向内存中的整数

相比之下,整数变量在 Java 中是如何存储的?它们是否也指向内存中的整数对象或内存中的整数?

【问题讨论】:

  • 回答javapython。 TLDR:变量类似于指向对象的指针。请注意,它不完全是指针,因为 Python 或 C++ 不支持指针运算。

标签: java python pointers


【解决方案1】:

据我了解,在 python 中,会创建一个 int 对象,然后该变量保存一个指向该对象的引用。 Here 是你可以做的一点点阅读。

在java中,整数是原始类型。所以变量不像引用类型那样保存内存位置。相反,它们保存整数本身的值。原始类型的包装器是引用类型。 Here是java的好文章

【讨论】:

  • 我认为内部变量必须保存一个内存位置——这是计算机可以检索存储在变量中的值的唯一方法。因此,考虑到这一点,Java 中的变量可能还包含整数的内存位置,但这些位置包含整数,与 Python 不同,其中这些内存位置包含作为对象的整数。
  • 嗯,是的,所有变量都是内存位置。存储在该内存位置的内容是不同的。假设这两个变量都在堆栈上。对于原始类型,在内存位置是该原始类型的值。对于引用类型,它存储一个指向堆上存储对象的内存位置的指针。
  • 听起来很有说服力!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-23
  • 2013-04-06
  • 2012-09-08
  • 2022-01-01
  • 2013-09-08
相关资源
最近更新 更多