Java:内存中会发生什么?

Har*_*ian 0 java memory java.util.scanner

例1:

System.out.print("Enter an integer: ");
int x = input.nextInt();
if(x < value) {  }
Run Code Online (Sandbox Code Playgroud)

例2:

System.out.print("Enter an integer: ");
if(input.nextInt() < value) {  }
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

  1. 如果您需要特定条件下的值,哪一个更好用?或者两种语法在内存方面都相同?

  2. 在内存方面,第二个例子中输入的值是怎么回事?

请详细说明我的答案.

Ale*_*kin 5

  1. 这些示例在内存方面是相同的,因为在这两种情况下,整数值都被放入堆栈中.但是,第一种方法对于调试来说更方便,因为您可以轻松地观察值并对其进行更改.

  2. 见prev.它被分配在堆栈中.

此外,建议局部变量以小写字母开头,如下所示:value.