"变量名称"需要多少空间?

Rav*_*pta 1 java memory variables

我有2个变量,如下所示

char s='s'; 
char Kaazoooombaa ='s';
Run Code Online (Sandbox Code Playgroud)

我怎么知道哪个变量消耗了多少空间?

Jon*_*eet 7

除了少量的元数据空间(总共分配一次,而不是每个实例分配一次),名称没有区别1.因此,在给出的示例中,每个变量将占用2个字节,可能填充到4个字节,具体取决于其他字段和正在使用的VM.

请注意,即使对于引用类型(包括数组),变量本身所占用的空间也是由其类型(以及VM的详细信息)修复的 - 引用空字符串所占用的空间与a占用的空间相同.引用一个巨大的字符串.


1每次使用变量可能会有成本- 或者每个类使用变量.您必须查阅VM规范以检查确切的二进制表示.即便如此,这也是类文件中的表示,这可能不会导致在所有JIT编译等时增加内存使用.无论如何,几乎可以肯定在宏大的方案中无关紧要 - 实际对象所需的内存几乎总是如此使代码本身所需的内存相形见绌.