java - 如何在没有引用的情况下访问 Java 堆对象?

标签 java jvm persistence heap-memory

我想获得对 Java 堆中所有对象的引用,即使我没有立即在我的 Activity 线程中获得对这些对象的引用。我不需要未引用的对象(那些“排队”进行垃圾收集的对象),但想获得仍在使用的任何对象。

目标是序列化并存储所有对象,以实现穷人的执行状态持久化。我意识到,当涉及到不同类型的 transient 时,兔子洞会变得很深,但是简单地持久化对象和加载的类定义对我来说很有用。

有没有办法访问堆以实现这一点?我是否忽略了一种更直接的方法?

最佳答案

我会查看 instrument包裹。检测您感兴趣的类,以便构造函数注册创建的实例。如果您不想使用 java.lang.instrument,或者如果对象是通过您可以控制的东西(IoC 容器或工厂)创建的,那么您可以通过 AspectJ 来完成此操作,那么您可以做一些不那么神奇的事情。

关于java - 如何在没有引用的情况下访问 Java 堆对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1384228/

相关文章:

linux - 符号链接(symbolic link)如何影响加载 persistence.xml

java - 按下按钮后获取图像对应的文件名

java - 如何在java中将选定的项目从2个单独的组合框获取到第3个组合框以及itemstatechanged?

java - hbase 导出到平面文件

java - mongodb聚合长于不同

java - 强制执行 JVM GC - 有充分的理由(我希望)

java新手问题: richer java subprocesses

java常见的存储选项,没有数据库或文件系统

memory - 堆内内存和堆外内存的区别

angular - 我怎样才能在我的 Electron 应用程序中实现本地持久化?