int[] myarray = new int[10].
我想向专家了解一下过程本身以及我是否理解正确。我们声明一个引用类型的变量,它被放置在堆栈上。接下来,使用运算符,new我们在堆中创建一个空间(我们根据类型的大小分配它,在本例中int),然后运算符new返回地址,我们将其分配给堆中分配的空间的地址堆,即值的地址,使用引用类型的变量。
new它是否返回地址?
int[] myarray = new int[10].
我想向专家了解一下过程本身以及我是否理解正确。我们声明一个引用类型的变量,它被放置在堆栈上。接下来,使用运算符,new我们在堆中创建一个空间(我们根据类型的大小分配它,在本例中int),然后运算符new返回地址,我们将其分配给堆中分配的空间的地址堆,即值的地址,使用引用类型的变量。
new它是否返回地址?
如果您创建引用类型的对象(例如包含 10 个元素的数组)
int(如本例所示),则它将返回ссылка该对象。如果您创建一个值类型的对象,例如,只是一个整数而不是一个数组,那么该对象本身将被返回。尽管在较低的层面上,这一切看起来更加复杂。链接和对象这两个实体都有一个地址,如果需要的话可以获取它。
对象是分配在堆上还是堆栈上是另一个复杂的问题。非常近似,那么是的 - 引用或结构将位于堆栈上,而对象将位于堆上。或者甚至在一堆大物体中
LOH(如果它足够大的话)。但这一切并不能100%保证。还有处理器寄存器和其他微妙之处。