[code="java"]
package com;
public class UserTest
{
public static void main(String[] args){
User u = new User("jack");
UserTest ut = new UserTest();
ut.changeUser(u);
System.out.println(u.getName());
}
private void changeUser(User u){
u = new User("tom");
System.out.println(u.getName());
}
}
package com;
public class User
{
public User(String name){
this.name = name;
}
private String name;
public String getName(){
return this.name;
}
public void setName(String name){
this.name = name;
}
}
[/code]
请先思考一下输出的内容。
程序运行的结果是:
tom
jack
我的疑问:为何不是
tom
空
chageUser执行完毕后,User.tom占用内存应该释放。此时U的指针应该执行空。