在java中,当您将对象作为参数传递给方法时,它实际上是将引用或指针传递给该对象,因为Java中的对象是引用.
在函数内部,它有一个指向该对象的指针,该对象是内存中的一个位置.我想知道这个指针在内存中的位置?是否在函数内部创建了一个新的内存位置来保存此引用?
在函数内,参数引用存储在堆栈中。所引用的事物可以存在于任何地方。
当某些代码调用方法时,通常会在执行线程的堆栈上创建空间,并且该空间用于保存传递给函数的参数。如果其中一个参数“是一个对象”,那么真正起作用的是对对象的引用;该引用被复制到堆栈上,以便被调用的代码可以找到它。重要的是要认识到对象本身并没有被复制,只是引用。
然后,被调用代码的序言部分通常会在堆栈上为方法自己的局部变量分配更多空间,但在下面,JVM 有一个指向包含所有参数的堆栈帧的指针,因此被调用代码可以找到名为的对象通过参数。使用“new”创建的项目将从堆中分配,即使在方法退出后也可以保留,但只需将堆栈指针移回调用前的位置即可转储在堆栈上分配的所有项目。
| 归档时间: |
|
| 查看次数: |
222 次 |
| 最近记录: |