在 Java 中查找对象的大小
在 Java 中,在比较数据结构时经常出现确定对象内存占用的问题。然而,与 C/C 的 sizeOf() 方法不同,Java 缺乏用于此目的的显式方法。
解决方案:利用 java.lang.instrumentation
缺乏Java 中的内置方法需要一种替代方法。一种合适的解决方案是利用 java.lang.instrumentation 包。此包提供了一种方法,可以提供对象大小的特定于实现的近似值以及任何相关的开销。
代码示例:
以下代码片段演示了使用 java.lang.instrumentation 包检索对象大小:
<code class="java">import java.lang.instrument.Instrumentation; public class ObjectSizeFetcher { private static Instrumentation instrumentation; public static void premain(String args, Instrumentation inst) { instrumentation = inst; } public static long getObjectSize(Object o) { return instrumentation.getObjectSize(o); } }</code>
要确定对象的大小,只需使用 getObjectSize 方法:
<code class="java">public class C { private int x; private int y; public static void main(String [] args) { System.out.println(ObjectSizeFetcher.getObjectSize(new C())); } }</code>
以上是Java中如何确定对象的大小?的详细内容。更多信息请关注PHP中文网其他相关文章!