0

另外,你能定义一个类,这样你就可以在堆上而不是在堆栈上创建它的对象吗?

4

2 回答 2

0

我的理解是堆栈上只存在原始类型,而复杂类型(对象)是在堆上创建的,并由堆栈上的原始指针引用。此外,堆栈值一旦超出范围就会被删除,而在堆上分配的对象会持续超出其原始范围,并最终被垃圾回收。

以我的思维方式,对象永远不会在堆栈上创建。堆上分配的对象的指针是在栈上创建的。因此,除非我遗漏了一些关键的东西(总是有可能!),否则您的第二个问题的答案是,无论您做什么,您的类及其所有内部对象都将在堆上创建。堆栈上存在的只是指向堆上对象位置的引用指针。

于 2012-12-30T15:47:08.653 回答
0

■ 实例变量和对象位于堆上。

■ 局部变量存在于堆栈中。

于 2015-09-03T16:57:56.917 回答