java 真的以不同于自定义对象的方式处理所有原始类型吗?当我检查并试图“解释”这个简单实验程序的结果时,我提出了这个问题:
public class RandomObject {
String name;
int value;
public RandomObject(String s, int i){
setName(s);
setValue(i);
}
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public static void main(String[] args) {
int x = 2;
int y = x;
System.out.println(y);
x = 4;
System.out.println(y);
RandomObject obj1 = new RandomObject("object1", 4);
RandomObject obj2;
obj2 = obj1;
System.out.println(obj2.getValue());
obj1.setValue(17);
System.out.println(obj2.getValue());
}
结果是:2 2 4 17
尽管 x 已更改,但 y 的值保持不变,而在对象中,更改会影响它们两者。所有原始类型(整数除外)是否都会发生同样的情况,为什么?