如何在Java中打印基本数据类型占用的字节大小?
Java基本数据类型字节大小的获取方法
Java的基本数据类型字节大小是固定不变的,由语言规范统一规定,和运行平台无关,你可以直接记住这些固定值:
byte:1字节short:2字节int:4字节long:8字节float:4字节double:8字节char:2字节(采用UTF-16编码存储字符)boolean:语言规范未明确字节大小,JVM实现中通常用1字节或4字节存储,仅支持true/false两种取值
如果要通过代码打印这些基本类型的大小,最简便的方式是使用Java 8及以上版本中各基本类型对应包装类的BYTES常量,示例代码如下:
public class Main { public static void main(String[] args) { int x = 10; byte y = 125; float z = 2.5f; long ln = 50; // 直接打印对应类型的字节大小 System.out.println("int 类型字节大小: " + Integer.BYTES); System.out.println("byte 类型字节大小: " + Byte.BYTES); System.out.println("float 类型字节大小: " + Float.BYTES); System.out.println("long 类型字节大小: " + Long.BYTES); } }
如果需要动态判断某个变量对应的类型大小,可以通过装箱后判断包装类类型来实现,示例如下:
public class Main { public static void main(String[] args) { int x = 10; byte y = 125; float z = 2.5f; long ln = 50; System.out.println("变量x的类型字节大小: " + getPrimitiveSize(x)); System.out.println("变量y的类型字节大小: " + getPrimitiveSize(y)); System.out.println("变量z的类型字节大小: " + getPrimitiveSize(z)); System.out.println("变量ln的类型字节大小: " + getPrimitiveSize(ln)); } private static int getPrimitiveSize(Object wrappedPrimitive) { if (wrappedPrimitive instanceof Integer) return Integer.BYTES; if (wrappedPrimitive instanceof Byte) return Byte.BYTES; if (wrappedPrimitive instanceof Float) return Float.BYTES; if (wrappedPrimitive instanceof Long) return Long.BYTES; // 可扩展支持其他基本类型包装类 throw new IllegalArgumentException("不支持的类型"); } }
内容的提问来源于stack exchange,提问作者Imtiaz Ahammed Nafiz
相关产品推荐
相关产品推荐

