这只是为了我的理解。作为类成员的对象进入堆,而局部变量和值类型得到堆栈。是否有一个usecase和possibilty将对象强制推送到堆栈或堆?
答案 0 :(得分:5)
不,Java不允许直接访问内存。我不认为有这个用例。即使在C ++中也是不可能的,因为某些规则适用于保存对象的位置。您将需要实现自己的内存管理例程,这将是繁琐且依赖于平台的。
答案 1 :(得分:2)
是和否 - 我认为这里有一个概念性的误解。
如果通过在堆上强制一个对象,你的意思是你希望它在调用创建它的方法后保持“活着”,然后是。您所需要的只是保留对它的引用。
如果通过在堆上强制一个对象,你的意思是你想指定该对象的内存从哪里分配,然后没有(不是没有一些jni时髦的东西)。
答案 2 :(得分:2)
在Java中,用new分配的所有内容都是从堆中分配的。原始类型的局部变量从堆栈中分配。
答案 3 :(得分:2)
是班级成员的对象 进入堆。
没有。对象进入堆中。
...同时局部变量和值 类型[转到]堆栈。
没有。所有局部变量都在堆栈上分配。如果它们是对象的引用,则相关对象存在于堆中。
是否有用例和可能性 将对象推送到堆栈或堆 强制?
没有。你不需要一个。所有对象都在堆上分配。