代码之家  ›  专栏  ›  技术社区  ›  Steve Chambers

混合数字类型时,Java编译器是否优化了类型转换?

  •  0
  • Steve Chambers  · 技术社区  · 7 年前

    下面的情况1和情况2之间的速度是否有任何差异(无论多么小)?

    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 100.0 )在编译时?

    1 回复  |  直到 7 年前
        1
  •  1
  •   accfews    7 年前

    反编译版本显示,两种情况下的输出都是相同的。

    但作为最佳实践,案例2将更具可读性和可理解性。

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