62,623
社区成员
发帖
与我相关
我的任务
分享public static void main(String[] args) {
int i = 1;
f(i);
// 这里i还是1,因为i只是把它的值的拷贝,即另一个1,给了f(),它自身的值仍然不变
}
void static f(int i) {
i = 2;
}//自定义类型T
class T {
int i;
T(int i) { this.i = i; }
}public static void main(String[] args) {
T t = new T(100);
f(t);
// 这里t还是指向new T(100),因为t只是把它地址的拷贝给了f(),t自身的指向仍然不变
}
void static f(T t) {
t = new T(200); // 试图让t指向另一个对象,但其实这里的t已经不是方法外的那个t了,只是一个复制品,所以改变它的指向,对方法外的那个t丝毫没有影响
}void static f(T t) {
t.i = 200;
}
String a = "ok";
String a = "no"; // 这里并没有改变 对象"ok"的值,只是让引用a指向了另外一个新的对象"no"了