2017-11-16 19 views
0

以下のケース1とケース2の間に速度差はありますか?数値型の混在時にJavaコンパイラが型変換を最適化しますか?

double total = 12.34 
double percentage = 56.78; 
double amount; 

// Case 1: 
amount = (100 - percentage) * total; 

// Case 2 
amount = (100.0 - percentage) * total; 

またはJavaは自動的にコンパイル時に(100.0)、二重に整数リテラル(100)に変換しますか?

+1

よく、あなたはコードを逆コンパイルして見ることができます... – Tom

答えて

1

デコンパイルされたバージョンでは、両方のケースで出力が同じになることが示されています。

しかし、ベストプラクティスとして、ケース2は読みやすく理解しやすいでしょう。

double d1 = 12.34D; 
double d2 = 56.78D; 

double d3 = (100.0D - d2) * d1; 

d3 = (100.0D - d2) * d1; 
関連する問題