【发布时间】:2015-01-21 20:48:22
【问题描述】:
我在互联网上进行了一些搜索,但没有找到答案,所以我希望能找到它。所以我的猜测是,如果我声明一个final int foo = 6 它会因为它的大小不会改变,它只会被设置为它在内存方面需要的东西。其中变量int bar = 8 必须在内存中具有更大的大小,因为它有机会在程序的后期发生变化。
【问题讨论】:
-
一个 int 是一个 int。大小相同。
-
你的猜测不正确。
-
这两种情况所需的大小相同,不同之处在于 JVM 处理它们的方式(当然还有你可以用它做什么)。
-
不,内存也不少。但是,当您实际上不打算改变值时,使用 final(常量)通常“更正确”。
-
讨论这个既完全没有意义也毫无意义(因为编译器优化毫无意义,而且毫无意义,因为大多数情况下它根本不关心性能,无论是内存使用量还是 CPU 时间或......或......)