【发布时间】:2015-08-30 05:52:29
【问题描述】:
我知道 java 中的所有内容都是按值传递的,但下面的代码不应该打印 2 而不是 1。
我所做的只是传递Integer 并更改其值。为什么打印 1 而不是 2 ?
public static Integer x;
public static void doChange(Integer x) {
x = 2;
}
public static void main(String arg[]) {
x = 1;
doChange(x);
System.out.println(x);
}
【问题讨论】:
-
在
doChange中,x是参数变量,而不是全局静态x。 -
但是参数变量指向全局静态变量。
-
你从哪里学来的?指向全局变量的参数?
-
为什么要将参数
x传递给doChange()。您可以简单地修改x而不将其作为参数传递,您的意图到底是什么? -
我在一次采访中被问到这个问题。