以下是我的理解。
在C编程中,如果我使用int a
,那么a
将被创建在堆栈上,因此内存将从堆栈中取出。堆不在这里起作用。
但如果我执行类似以下代码:
int *a;
a=(int*)malloc(sizeof(int));
如果动态分配内存,那么引用变量将被放置在栈上,但它所指向的内存将在堆上。
我理解得对吗?
现在,我拿起了一本关于 Java 的书,上面说:
“每当需要一个对象时,你只需编写使用 new 创建该对象的代码,并在执行该代码时分配存储空间。”
因此,在 Java 中无法在栈上创建对象?
我猜,原始数据类型仍然可以放置在栈上,但我关心的是对象。