有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我能在这个程序中更好地使用内存吗?

下面的代码按照我希望的方式工作。我只是想看看我是否使用了必要的内存,而不是太多。我想把编程作为我的职业,所以很高兴听到一些专业人士的声音

import java.util.*;
public class GuessingGame {
    public static void main(String[] args) {
        int counter = 0, number, guess, yes = 1, no =2, answer;

        Scanner input = new Scanner(System.in);

        number = ((int) (Math.random() * 100));

        System.out.println("Would you like to play the guessing game?");
        System.out.println("Enter " + yes + " for yes, and enter " + no + " for no");
        answer = input.nextInt();

        if(answer == no) {
            return;
        } else {
            while (answer == yes) {
            System.out.println("Welcome to the guessing game");
            System.out.println("There has been a number between 1 and 100 picked \n You have five chances to guess the number");
            System.out.print("Please enter your guess >> ");
            guess = input.nextInt();

            while (guess != number) {
                if (guess != number) {
                    counter = ++counter;
                }
                if (counter == 5) {
                    System.out.println("You have used all your guesses");
                    System.out.println("The number was " + number);
                    System.out.println("Would you like to play again?");
                    System.out.println("Enter " + yes + " for yes and " + no + " for no");
                    answer = input.nextInt();
                    counter = -1;
                    if (answer == no)
                    return;
                } else if (guess < number) {
                    System.out.println("You need to guess higher");
                    System.out.println("You have used " + counter + " guess(es)");
                    System.out.println("Please enter your new guess");
                    guess = input.nextInt();
                } else if (guess > number) {
                    System.out.println("You need to guess lower");
                    System.out.println("You have used " + counter + " guess(es)");
                    System.out.println("Please enter your new guess");
                    guess = input.nextInt();
                }

            }
            System.out.println("You win");
            System.out.println("Would you like to play again");
                System.out.println("Enter " + yes + " for yes and " + no + " for no");
                answer = input.nextInt();
                if(answer == no)
                    return;
        }
    }
}
}

共 (1) 个答案

  1. # 1 楼答案

    我不会担心内存优化,除非你对应用程序进行了内存分析,并且发现了问题。你的时间就是金钱,通常1GB的内存比一小时的时间便宜,1MB的内存值几秒钟,1KB的内存值不到按一个键所需的时间,而且你甚至不用1KB的对象

    在一个更大的程序中,我建议您使用jmc来分析您的应用程序,尤其是查看分配率,并考虑如何降低分配率