由于Java没有提供获取对象地址的方法,因此编写XOR链表是否可行?
如果是,请详细说明,该怎么做?
您永远无法在Java中做到这一点。
即使您sun.misc.Unsafe
用来访问对象的真实地址,甚至使用不会移动对象的垃圾收集器,(我相信Concurrent Mark Sweep都不会移动对象,因为它是“非紧凑型” ),那么您会遇到更大的问题:通过将prev
和next
对象引用整形在一起,垃圾回收器将不会意识到它们是对象引用。因此,它会认为所引用的对象是未引用的,因此会将所有列表节点收集为垃圾。
如果需要节省内存,请使用基于数组的列表而不是链接列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句