java如何获取用户输入
两者的区别是什么java如何获取用户输入,java,input,java.util.scanner,Java,Input,Java.util.scanner,两者的区别是什么 Scanner keyboard= new Scanner(System.in); int answer= keyboard.nextInt(); 及 我是这里的初学者,所以透彻的解释会很有帮助。提前谢谢 第一条语句初始化可以多次使用的Scanner对象 第二条语句仅为该行代码创建一个新的Scanner对象。下次需要输入时,必须调用新的扫描仪对象 创建变量比每次创建一个新对象更好 Scanner keyboard= new Scanner(Sy
Scanner keyboard= new Scanner(System.in);
int answer= keyboard.nextInt();
及
我是这里的初学者,所以透彻的解释会很有帮助。提前谢谢 第一条语句初始化可以多次使用的Scanner对象 第二条语句仅为该行代码创建一个新的Scanner对象。下次需要输入时,必须调用新的扫描仪对象 创建变量比每次创建一个新对象更好
Scanner keyboard= new Scanner(System.in);
int answer= keyboard.nextInt();
在上面的代码中,扫描器
对象在堆内存中创建,其引用存储在名为键盘
的变量中(键盘
变量存储在堆栈内存中)。使用变量键盘
可以在程序的任何位置访问扫描仪
对象
int answer= new Scanner(System.in).nextInt();
在第二条语句中,您创建的对象也存储在堆内存中,但对象的引用不存储在任何变量中。因此,您无法再访问此对象。在此语句之后,堆内存中的对象就可以被垃圾回收,因为它的引用不再被使用。您知道(局部)变量是什么吗?没有区别。首先将扫描器分配给一个变量,在下一个示例中不分配。它们是相等的,但第一个比另一个更相等。没有区别,只是不能重用第二个代码段的Scanner实例。没有区别。在第一种情况下,您只需在局部变量中指定“新扫描仪”,而在第二种情况下,您直接使用“新扫描仪”。如果必须在同一方法中读取多个用户输入,第一种情况可能很有用,如果一次只有一个用户输入,第二种情况就足够了。@C-Otto是的,我知道局部变量是什么!如果我需要用户输入的只是“应答”,而我正在循环中使用它,那么第二个代码就足够了,对吗?
for(int I;iAs,我是说,该代码可以工作,但编程约定希望您在使用之前声明Scanner对象(意外按下send)。这使代码更易于阅读和理解。
int answer= new Scanner(System.in).nextInt();