如何在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