[英]Memory consumption on Initializing final static variable with another final static
我的问题是,如果我在一个类中创建一个最终的静态变量,并用另一个最终的静态变量(已经声明和初始化)对其进行初始化。 这两个变量的内存消耗是多少?
例如:-
class SomeClass{
private static final byte VARIABLE_1 = 0x01;
private static final byte VARIABLE_2 = VARIABLE_1;
...
}
VARIABLE_1,VARIABLE_2会消耗多少内存?
提前致谢。
在您的示例中,在运行时为0个字节。 final static
原语由编译器内联,它们是常量。
类文件包含它使用的任何静态final字段的常量值的副本。因此它使用的内存可以忽略不计。
SomeClass
类声明两个常量VARIABLE_1
和VARIABLE_2
,并使用作为编译时常量的表达式对其进行初始化。
编译器知道VARIABLE_1
表示值0x01
而VARIABLE_2
表示值0x01
。 当Java虚拟机加载SomeClass
类时, VARIABLE_1
和VARIABLE_2
不会作为类变量存储在方法区域中。
VARIABLE_1
和VARIABLE_2
字段不是类变量,它们是常量,Java编译器将它们表示的常量int值放入使用它们的任何类的常量池中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.