Java对象遍历方法
-
Java遍历虚拟机,如何高效实现各类对象的迭代访问?虚拟机的对象迭代访问方法
先想清楚你要“看结构”还是“拿实例”,前者用类元数据与反射,后者必须走堆快照或JVMTI,别无他路,很多人第一次做对象遍历,思路都是“把堆里所有对象挨个摸一遍”,这个念头在开发环境里无所谓,放到线上就是事故,业内专家指出,JVM并没有开放一个“列出所有实例”的公共API,你能用的入口其实就那么几个,选错了不仅慢……
先想清楚你要“看结构”还是“拿实例”,前者用类元数据与反射,后者必须走堆快照或JVMTI,别无他路,很多人第一次做对象遍历,思路都是“把堆里所有对象挨个摸一遍”,这个念头在开发环境里无所谓,放到线上就是事故,业内专家指出,JVM并没有开放一个“列出所有实例”的公共API,你能用的入口其实就那么几个,选错了不仅慢……