您的位置:首页 > 其它

传值与传址--String的“特殊性”

2015-08-27 14:37 183 查看
String为引用类型,作为参数传递时却表现出“传值”特性

==========================范例分析======================================
public class Main {

public static void main(String[] args) {
final MyObject obj = new MyObjec("hello"); //String是final Object的一种

//final修饰符表明obj必须始终指向同一内存空间,但该内存空间的内容是可以修改的
change(obj);
System.out.println(obj.name); //输出"hello"

}

public void change(MyObject a) { //应该注意到这里的a为局部变量,且没有final修饰符。
//它和main中的obj变量目前指向同一内存空间
a = new MyObject("world");
//该语句将其指向新的内存空间,因此接下去的操作不会影响原来的对象
}
}

class MyObject {
public String name = null;
public MyObject() {}

public MyObject(String name) {
this.name = name;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: