可以强制对象存储在堆中吗?

时间:2010-02-22 08:32:51

标签: java memory

这只是为了我的理解。作为类成员的对象进入堆,而局部变量和值类型得到堆栈。是否有一个usecase和possibilty将对象强制推送到堆栈或堆?

4 个答案:

答案 0 :(得分:5)

不,Java不允许直接访问内存。我不认为有这个用例。即使在C ++中也是不可能的,因为某些规则适用于保存对象的位置。您将需要实现自己的内存管理例程,这将是繁琐且依赖于平台的。

答案 1 :(得分:2)

是和否 - 我认为这里有一个概念性的误解。

如果通过在堆上强制一个对象,你的意思是你希望它在调用创建它的方法后保持“活着”,然后是。您所需要的只是保留对它的引用。

如果通过在堆上强制一个对象,你的意思是你想指定该对象的内存从哪里分配,然后没有(不是没有一些jni时髦的东西)。

答案 2 :(得分:2)

在Java中,用new分配的所有内容都是从堆中分配的。原始类型的局部变量从堆栈中分配。

答案 3 :(得分:2)

  

是班级成员的对象   进入堆。

没有。对象进入堆中。

  

...同时局部变量和值   类型[转到]堆栈。

没有。所有局部变量都在堆栈上分配。如果它们是对象的引用,则相关对象存在于堆中。

  

是否有用例和可能性   将对象推送到堆栈或堆   强制?

没有。你不需要一个。所有对象都在堆上分配。