java如何获取用户输入

时间:2018-01-22 14:20:34

标签: java input java.util.scanner

之间有什么区别
        Scanner keyboard= new Scanner(System.in);
        int answer= keyboard.nextInt();

        int answer= new Scanner(System.in).nextInt();

我是初学者,所以彻底的解释会有很大帮助。提前致谢!

2 个答案:

答案 0 :(得分:1)

Scanner keyboard= new Scanner(System.in);
int answer= keyboard.nextInt();

在上面的代码中,在堆内存中创建了一个Scanner对象,它的引用存储在一个名为keyboard的变量中(keyboard varible存储在堆栈内存中)。使用变量keyboard,您可以在程序的任何位置访问Scanner对象。

 int answer= new Scanner(System.in).nextInt();

在第二个语句中,您正在创建也存储在堆内存中的对象,但该对象的引用不存储在任何变量中。因此,您无法再访问此对象。在此语句之后,堆内存中的对象已准备好进行垃圾回收,因为它的引用不再使用了。

答案 1 :(得分:0)

第一个语句初始化可以多次使用的Scanner对象。

第二个语句为该行代码创建一个新的Scanner对象。您需要在下次需要输入时调用新的Scanner对象。

创建变量比每次创建新对象更好。