評価結果に影響を与える副作用があるコードをデバッグしていexpr1 & expr2
ます。JLSはの左から右への評価を保証しているので、それは前に評価されると思いますが、必ずしも。の評価は必要ありません。また、評価順序の変更は、HotSpot(Java 6u20を実行している)によって実行された最適化の結果である可能性があると思われます。HotSpotがそのような最適化を行うことができるかどうか知っていますか?さらに良いことに、疑惑を支持または排除するドキュメントへのポインタを提供します。前もって感謝します。expr1
expr2
expr2
expr1
&&
&
編集:正しくて読みやすいようにコードを書き直すことを提案してくれた人たちに感謝します-あなたは正しいですが、私はすでにそうしているので、それは私が探しているものではありません。残念ながら、変更をテストするのは難しいので、ここで質問します。