会发生什么?
java中的原始数据类型是可变的还是不变的?
student{
int id;
}
现在,学生拥有ID作为实例成员。
student st = new Student();
int id = 20;
st.id = id;
id = 30;
学生对象会更改吗?如果我们使用Integer
包装程序类代替原语?
Java中的原始数据类型没有参考。当您设置
时st.id = id;
您仅在原始变量St.Id上设置值(20)。St.ID和ID之间没有联系。
否则,当您使用整数时,St.ID和ID是参考。
Integer id = new Integer(20);
在堆中创建和对象是指向它的引用。
st.id = id;
复制对圣德的引用。该引用还指向堆中的对象(Integer(20))
但更改
id = new Integer(21);
不会改变圣伊德的价值。它仅将ID的指针更改为堆中的另一个对象。