站长源码网(Downzz.com)
站长源码网(Downzz.com)
当前位置:首页 > 站长教程 > 开发编程 > Java编程
Java运行缓慢的解决方案
时间:2022-04-26 21:56:02 围观:107 来源:互联网

问题描述


我正在尝试执行我的Java代码,但是它说花费的时间太长。有一种方法弹出说要检查我是否有无限循环。我不。至少我不这么认为。我是Java的新手,所以我真的需要帮助。我的作业需要一个for循环,这是我想出的代码

import java.lang.Math;
public class Main{
  double initialBalance;
  double interestRate;
  double years;
  double totalPayment;
  double firstInterest;
  double lastInterest;
  double totalInterest;
  double totalPrincipal;
  double firstPrincipal;
  double lastPrincipal;
  double firstBalance;
  double lastBalance;
  double monthlyPayment;

  public static final double periodsPerYear = 12;
  public static final double invalidNum = -1.0;

  public Main(double balance, double interest, double Life){
    initialBalance = balance;
    interestRate = interest;
    years = Life;

    //monthlyPayment calculation
    monthlyPayment = initialBalance * ((interestRate/periodsPerYear)+((interestRate/periodsPerYear)/(Math.pow(1+(interestRate/periodsPerYear),periodsPerYear*years)-1)));

    for (double i=0;i?" ) );
    System.out.println( loan.getAmount( "{)*(&EPQWR", "interest") );
  }
}

我该怎么做才能使其执行更快?我究竟做错了什么?

思路一:


首先,您提供的代码无法编译。未声明getAmount()中的变量“ valid”和“ lastBalance0”。可能您忘记了在此方法的顶部声明“双重有效”,并键入了“ lastBalance0”而不是“ lastBalance”。

您的代码还存在其他一些问题:

  • 在for循环中将变量'i'的类型更改为'int'

  • 将return Math.round((valid * 100.00)/100.00)更改为返回Math.round(valid * 100.00)/100.00

  • 考虑使用“ first” .equals(month)代替month.equals(“ first”),因为如果month为空,它不会引发NullPointerException。

思路二:


正如Alex所指出的,您的代码无法编译。

修复了这两件事之后,它确实运行了:

  • 声明双精度变量
  • 将错字lastBalance0修复为lastBalance

代码已运行,这是输出:

Mon Feb 24 09:34:37 CET 2020
1582533277204
4387.13897340686
5291.335361764231
105291.33536176465
417.0
3970.0
96030.0
-1.0
18.0
4369.0
0.0
-1.0
-1.0
Mon Feb 24 09:34:37 CET 2020
1582533277206

我在开始和结束时添加了以毫秒为单位的当前日期和时间的打印,并且该程序需要2毫秒的时间来执行。

希望朋友们都对“Java运行缓慢的解决方案”了解清楚了,如果你想深入认识Java编程方面的内容,欢迎来我们本站技术频道网站翻阅相关文章。

文章为作者独立观点不代表本网立场,未经允许不得转载。