答案是肯定的。这称为“
公共子表达式消除”,它是Java,C
/ C ++和其他应用程序中使用的一种标准(且功能强大)的编译器优化。
该页面确认HotSpot
JVM将进行此优化。
就是说,编译器/运行时是否能够在您期望时进行此优化是另一回事。因此,如果可以提高可读性,我通常更愿意自己进行这些优化。
double xw = x / width;double yw = y / width;if (xw > yw) { return xw;} else { return yw;}
答案是肯定的。这称为“
公共子表达式消除”,它是Java,C
/ C ++和其他应用程序中使用的一种标准(且功能强大)的编译器优化。
该页面确认HotSpot
JVM将进行此优化。
就是说,编译器/运行时是否能够在您期望时进行此优化是另一回事。因此,如果可以提高可读性,我通常更愿意自己进行这些优化。
double xw = x / width;double yw = y / width;if (xw > yw) { return xw;} else { return yw;}