在标准变量上使用常量是否使用更少的内存?
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
不会改变其内存要求。
我在互联网上做了一些搜索,但没有找到答案,所以我希望能找到答案。所以我的猜测是因为如果我声明一个 final int foo = 6
它因为它的大小不会改变它只会被设置为它在内存方面需要的东西。其中,变量 int bar = 8
必须在内存中具有更大的大小,因为它有可能稍后在程序中发生变化。
没有常量使用完全相同的内存。
唯一的区别是您不能在初始化后更改常量。我确定您知道,但是您使用常量来表示不应更改的值(偶然,..)
没有
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
基本上内存中值的大小(java)是由类型决定的。不同的原语消耗不同的内存量。对于给定类型的基元,此数量是恒定的。
值所需的 space 取决于数据类型,而不是确切的值。因此,
final int foo = 6;
需要与
完全相同的spaceint bar = 8;
或
int baz = 0;
或
int shazam = Integer.MAX_VALUE;
考虑到这一点,您应该不会惊讶于变量是否被声明 final
不会改变其内存要求。