我应该在Java中为单词对齐安排变量声明吗?

我应该在Java中为单词对齐安排变量声明吗?,java,memory,Java,Memory,在C/C++中,通常的做法是在经常使用的结构中排列字段声明,以便将各种大小的字段紧密地打包在一起,并尽可能与单词边界对齐。为了提高机器效率,牺牲了代码的可读性。对于Java来说,同样的实践值得吗?现实世界中的Java编译器/虚拟机是否会在内部重新排列它们以便对齐?如果您有资源运行虚拟机,您可能不需要关心这些小细节。至少在一个典型的服务器端Java应用程序中,这种方法通常是为了清晰和可维护性而编写代码,并相信编译器和VM会考虑效率。当然,这是合理的。自己找到了HotSpot(Sun)JVM的答案:

在C/C++中,通常的做法是在经常使用的结构中排列字段声明,以便将各种大小的字段紧密地打包在一起,并尽可能与单词边界对齐。为了提高机器效率,牺牲了代码的可读性。对于Java来说,同样的实践值得吗?现实世界中的Java编译器/虚拟机是否会在内部重新排列它们以便对齐?

如果您有资源运行虚拟机,您可能不需要关心这些小细节。至少在一个典型的服务器端Java应用程序中,这种方法通常是为了清晰和可维护性而编写代码,并相信编译器和VM会考虑效率。当然,这是合理的。

自己找到了HotSpot(Sun)JVM的答案:

“物品包装

添加了对象打包功能,以最大限度地减少不同大小数据类型之间的空间浪费。这在64位环境中主要是一个优势,但在32位虚拟机中也有一个小优势

..(示例字段声明)

现在,字段被重新排序,如下所示:

..(重新排序的字段声明)

在本例中,不会浪费任何内存空间。”


from

链接已断开;我在oracle.com上找不到类似的东西。