在 Java 中获取数据类型大小(sizeof) 的最佳实践

2022-09-01 11:08:59

我想将双精度和整数的列表存储到ByteBuffer中,该字节缓冲区要求分配大小。我想写一些类似C的语法

int size=numDouble*sizeof(double)+numInt*sizeof(int);

但是在Java中没有。以字节为单位计算大小的最佳做法是什么?我应该硬编码吗?sizeof


答案 1

看看下面@Frank Kusters的答案

(我最初的答案是Java版本<8。


答案 2

从Java 8开始,所有基元类型的包装类(除了)都有一个字段。因此,在您的情况下:BooleanBYTES

int size = numDouble * Double.BYTES + numInt * Integer.BYTES;

文档:http://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html