JVM如何处理对象的引用,然后使用new关键字将其设置为新的对象值

时间:2015-06-23 00:43:25

标签: java pointers jvm

我很好奇通过方法参数传递的java对象引用会发生什么,设置为方法所在的类中的类范围变量,然后将作为参数传递的原始对象设置为新的使用new关键字的值。

我的理解是对象通过引用传递而不是方法参数中的值,但是在使用= new将原始对象设置为新值时会发生什么? java是否在内存中为这个新对象创建了一个新位置,以便指向现有对象的指针保持不变?

希望我不是在问一个愚蠢的问题。 - 邓肯

1 个答案:

答案 0 :(得分:0)

您无法通过对象,也无法设置对象。

你只有原语和参考文献。

引用是一个地址,通常是一个4字节的值,如int

因此,当您更改引用时,将int值设置为其他内容也没有什么不同。实际上,设置对null的引用可以与将int设置为0

完全相同
  

java是否在内存中为这个新对象创建了一个新位置,以便指向现有对象的指针保持不变?

创建新对象时,始终使用新内存。即使旧对象不再在其他任何地方使用,也会发生这种情况。