在java中更改变量

时间:2015-06-04 14:31:27

标签: java

在以下代码中,

int i = 1;
int j = i + 2;
int i = 2;

'i'更改为2或'j'仍然等于1后,'j'是否等于2?

2 个答案:

答案 0 :(得分:3)

在Java中为任何变量赋值时,只有该变量发生变化。

此外,这些特定变量是基元,而不是引用类型。每个变量都包含一个值,而不是对可能在变量之间共享的对象的引用。

另外,请注意@gtgaxiola观察到由于Caused by: com.google.protobuf.InvalidProtocolBufferException: Protocol message contained an invalid tag (zero). 的第二个定义,此代码无法编译。这可以解决如下:

i

现在,如果您的变量是对可变对象的引用,您可以为同一个对象分配两个引用,并通过引用更改该对象。

int i = 1;
int j = i + 2;
i = 2;

此处,ColorRGB a = new ColorRGB(0,0,0); ColorRGB b = a; a.r = 255; a.r的值均为255,因为两者都指的是同一对象中的字段。

答案 1 :(得分:0)

初始化int i = 1后,您无法将其“重新初始化”为2.如果您想将i更改为2,则在初始化后会说i = 2;。另外j = 3,因为i + 2 = 3.在你提供的代码中j永远不等于1.玩它并且你会回答你自己的问题。

int i = 2;
int j = i + 2; // j is initialized to 3
i = 2;  // no need for declaring int since you did it above. The compiler  already knows its type
j = j - i; // 3-2
System.out.println("i = " + i) // prints 2
System.out.println("j = " + j) // prints 1