日期:2014-05-20  浏览次数:20703 次

如何在java中开辟一段连续的内存空间来放对象
public static class PlayParam extends Structure{
public int hWnd ; 
public int Priority ; 
                   public int MultiGroup;
}
项目用jna调用原生代码dll文件,这三个变量要求在内存中占4字节,现在的问题是不清楚结构体new过后变量是否就占用了内存空间,这里占用的是堆空间还是栈空间?而且要求结构体变量所占用的堆空间是连续的,这个在java有方法看吗?如何在java中开辟一段连续的内存空间来放结构体?麻烦大家了~~
class

------解决方案--------------------
比如你上面  public int multigroup; 这个东西  multigroup 会放到栈中。 对应初始化 0 会放到堆中。
------解决方案--------------------
jvm从系统申请到的内存就是连续的,新建的对象在堆上所占用的内存很可能也是连续的

不过连不连续对楼主有何影响呢

该对象占用空间 24 bytes

object header: 8 bytes
primitive fields: 3*4 =12 bytes
padding: 4 bytes

http://www.javamex.com/tutorials/memory/object_memory_usage.shtml