我很好奇通过方法参数传递的java对象引用会发生什么,设置为方法所在的类中的类范围变量,然后将作为参数传递的原始对象设置为新的使用new关键字的值。
我的理解是对象通过引用传递而不是方法参数中的值,但是在使用= new将原始对象设置为新值时会发生什么? java是否在内存中为这个新对象创建了一个新位置,以便指向现有对象的指针保持不变?
希望我不是在问一个愚蠢的问题。 - 邓肯
答案 0 :(得分:0)
您无法通过对象,也无法设置对象。
你只有原语和参考文献。
引用是一个地址,通常是一个4字节的值,如int
因此,当您更改引用时,将int
值设置为其他内容也没有什么不同。实际上,设置对null
的引用可以与将int设置为0
java是否在内存中为这个新对象创建了一个新位置,以便指向现有对象的指针保持不变?
创建新对象时,始终使用新内存。即使旧对象不再在其他任何地方使用,也会发生这种情况。