public class StrProblem {
String str = new String("good");
public void change(String str){
str="def";
}
public static void main(String[] args) {
StrProblem sp = new StrProblem(); //创建对象,成员变量显式初始化,str的值指向堆内存中的"good"字符串对象
sp.change(sp.str); //调用成员方法change,把成员变量的值传递给change方法的局部变量str
//就近原则str="def"中的str为局部变量,指向了常量池中的"def"
System.out.println(sp.str); //sp.str访问的是成员变量,值指向堆内存中的"good"字符串对象
}
} |