将变量绑定到某些数据时会发生什么?

什么时候

在Java中,请考虑声明和初始化

Object obj = new Object();

在此过程中,我们在某个内存位置创建了一个名为Object的对象,并将内存位置绑定到变量obj。

现在考虑在Java中原始类型的声明和初始化:

int num1Java = 5;
int num2Java = num1Java;

我们再次将它们各自绑定到5的存储位置;是的,我说了内存位置,因为Java似乎对原始类型的处理不同,它在另一个内存位置创建了另一个5实例,然后将num2Java绑定到包含相同信息的新位置,即5。我在这里吗?

考虑一下Python中类似的代码,其输出为true:

num1Py = 5
num2Py = num1Py
print id(num1Py)==id(num2Py)

这个教训似乎是在Python中,从Java的角度来看,像整数这样的“原始类型”被视为对象,换句话说,在python中,我们没有“原始类型”的概念。我对吗?

我浏览了很多有关主题的网络,但是似乎都没有一个完全令人满意的答案。非常感谢您的帮助。

救主

我们再次将它们各自绑定到5的存储位置;是的,我说了内存位置,因为Java似乎对原始类型的处理不同,它在另一个内存位置创建了另一个5实例,然后将num2Java绑定到包含相同信息的新位置,即5。我在这里吗?

不,如果这些

int num1Java = 5;
int num2Java = num1Java;

是局部变量,则它们在堆栈上。每个堆栈帧都包含一个局部变量表,基本上是一个数组,每个变量都有一个元素(比这聪明一点)。

一个int值用4个字节表示。因此,您的本地变量表将包含为您的变量保留的4个字节的区域num1Java当执行以下命令时

int num1Java = 5;

代表该值的四个字节5被压入堆栈,然后在归因于的偏移量处复制到局部变量表中num1Java当你做的时候

int num2Java = num1Java;

读取局部变量表的偏移量为num1Java,并将存储的相应字节压入堆栈。然后将这些相同的字节以的偏移量复制到局部变量表中num2Java

如果这些是实例变量,则会发生类似的情况,但是您要拥有它们所属的对象,而不是局部变量表。每个字段在为该对象分配的内存中都有其自己的偏移量。

对于引用类型,相同的概念适用于如上所述的局部变量和字段,除了存储在变量中的值是对象的引用(或多或少的存储位置)。可以在此处找到JLS引文的深入解释

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

单击提交按钮时会发生什么

来自分类Dev

未指定dbCreate时会发生什么?

来自分类Dev

当我将变量'x'更改为'fab'时会发生什么?关于装饰器并传递函数变量

来自分类Dev

循环结束时会发生什么?

来自分类Dev

达到墓碑限制时会发生什么

来自分类Dev

filepicker.io当某些文件已使用pickAndStore完成但用户关闭模式时会发生什么?

来自分类Dev

VRAM已满时会发生什么?

来自分类Dev

将1Byte数据转换为4Byte时会发生什么情况

来自分类Dev

如果我将JavaScript事件绑定到元素,然后删除该元素,那么事件会发生什么?

来自分类Dev

合成子类的变量时会发生什么?

来自分类Dev

MySQL:当某些值等于NULL时会发生什么?

来自分类Dev

当我绑定到AliasProperty时会发生什么?

来自分类Dev

在现有变量上调用malloc时会发生什么?

来自分类Dev

当指针太大时会发生什么?

来自分类Dev

升级Ubuntu时会发生什么?

来自分类Dev

断言检查失败时会发生什么?

来自分类Dev

将函数用作参数时会发生什么情况?

来自分类Dev

定义函数时会发生什么?

来自分类Dev

当所有数据节点都在hadoop中发生故障时会发生什么?

来自分类Dev

升级Ubuntu时会发生什么?

来自分类Dev

达到墓碑限制时会发生什么

来自分类Dev

PHP cookie过期时会发生什么?

来自分类Dev

尝试使用数组变量时会发生什么

来自分类Dev

将千兆字节的数据写入管道时会发生什么?

来自分类Dev

碳粉过多时会发生什么?

来自分类Dev

当我将%esp移至%ebp时会发生什么?

来自分类Dev

RTCP数据包丢失时会发生什么?

来自分类Dev

验证分离的签名时会发生什么?

来自分类Dev

暂停时会发生什么?

Related 相关文章

热门标签

归档