各位帮忙看看,引用c是在哪块内存上

public class A{
B b = new B();
}
public class B{
C c = new C();
}
public class C{
}
此时的c是在堆上还是栈上?

只有一种情况在栈上,那就是值数据类型,并且定义成函数的局部变量,它才是在栈上。

当然都是在堆上。

当然是堆上,new出来的都在堆上。

只要是new关键字的就是堆上,记住这个概念就好了。

那个B的引用在栈上,B对象,C引用,C对象都在堆上面

在堆上。可以在默认构造函数中将对象的地址显示出来看看就确定了

用new和malloc申请的动态内存均在堆上,栈内存放的是局部变量。

这个当然是在堆上了!

在堆上啊,对象时在堆上的

一楼说的有道理( •̀ ω •́ )y