【发布时间】:2018-11-04 04:27:52
【问题描述】:
我们知道值类型在栈中分配内存,而引用类型在堆中分配。现在当我们创建一个类的对象时,它是一个引用类型,内存将在堆中分配,此时我有一个困惑,这些类中的值类型在哪里分配了内存?是堆还是栈?
【问题讨论】:
-
我很快就通过了this explenation,但我认为这可能对您有所帮助。
-
值类型变量位于声明它们的位置。如果声明为另一种类型的字段,它们将存在于 该类型中。如果值类型变量被声明为方法的局部变量,那么它将驻留在堆栈或寄存器中,具体取决于编译器优化。如果值类型变量被声明为另一个值类型的字段,如果该其他类型存在于方法的局部变量中,则第一个值类型将存在于堆栈或寄存器中的另一个值类型变量中,具体取决于。