怎样用Java获取内存中的数据?

如题所述

可以考虑使用内存映射文件:java.nio.MappedByteBuffer,主要适合放入较大的数据进入系统内存
可以考虑使用:java.nio.ByteBuffer.allocateDirect()方法进行分配,可以将一些不适合放入堆里的数据放入系统内存
还可以采用java本地调用的方式,实现对系统自身内存的掌控与调度,这种方式可以让你灵活的访问系统的内存。
java的堆放入的对象尺度是有限制的,这里建议参考BigMemory 的实现机制以及内存管理机制
如果自己管理内存的话,建议参考其他语言对内存管理的方式。
你可以把数据放入线性数据结构中(这些数据是在系统内存中,而非jvm管理的内存里),这样就不存在分代问题,可以由你的应用在适当的时候清理系统的内存。这样,你的内存模型-释放机制就与jvm的内存管理机制处于一个互不干扰的异行线上。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-10-01
Java操作内存已经被JVM封装了。如果想要操作内容,就用JNI。然后用C去实现,调用系统的API来操作内存。
也就是说Java不直接提供调用WindowAPI。也就没办法操作内存了
第2个回答  2012-02-26
你在内存中首先建立存储数据的结构,如map等,这样你把数据放入map中,再次运行程序就可以进行读取了本回答被网友采纳
第3个回答  2019-01-08
java不能直接操作内存的,但又无处不操作内存,但那是虚拟机在为你服务而已
第4个回答  2012-02-20
java不能直接访问内存数据。
相似回答