有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

在java中声明后分配给数组的字节数

在Java中,如何检查声明后分配给数组的字节数? 例如:

int[] a = new int[10]; 

数组“a”被分配4*10字节,因为int的大小是4字节,并且有10个整数元素。有没有一种非手工的方法


共 (2) 个答案

  1. # 1 楼答案

    实际上int[10]的大小是56字节或更多(取决于您的JVM)

    • 10*4=10个整数的40字节
    • 4字节来存储数组长度
    • Java对象的8字节
    • 4字节,使对象的大小为8的倍数(对齐)

    但这一切都取决于操作系统的JVM和内存体系结构java.lang.instrumentation.Instrumentation提供了一种计算对象大小的方法,如this answer中所述

  2. # 2 楼答案

    在Java中,没有像C中的sizeof这样的运算符来获取数组元素的大小。所以至少没有直接的方法

    顺便说一句,声明期间不分配内存,只在初始化期间分配

    声明:

    int[] a;
    

    初始化:

    a = new int[10];