在标准变量上使用常量是否使用更少的内存?

Does using a constant over a standard variable use less memory?

我在互联网上做了一些搜索,但没有找到答案,所以我希望能找到答案。所以我的猜测是因为如果我声明一个 final int foo = 6 它因为它的大小不会改变它只会被设置为它在内存方面需要的东西。其中,变量 int bar = 8 必须在内存中具有更大的大小,因为它有可能稍后在程序中发生变化。

没有常量使用完全相同的内存。

唯一的区别是您不能在初始化后更改常量。我确定您知道,但是您使用常量来表示不应更改的值(偶然,..)

没有

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

基本上内存中值的大小(java)是由类型决定的。不同的原语消耗不同的内存量。对于给定类型的基元,此数量是恒定的。

值所需的 space 取决于数据类型,而不是确切的值。因此,

final int foo = 6;

需要与

完全相同的space
int bar = 8;

int baz = 0;

int shazam = Integer.MAX_VALUE;

考虑到这一点,您应该不会惊讶于变量是否被声明 final 不会改变其内存要求。