您的位置:首页 > 编程语言 > Java开发

java中String类型参数传递问题

2017-04-02 11:54 656 查看
先看代码:

public class Test1 {

public static void main(String[] args) {
String str = new String("string类型传递:");
StringBuffer sb = new StringBuffer("stringbuffer传递:");
change(str, sb);
System.out.println(str);
System.out.println(sb);
}
static void change(String str,StringBuffer sb)
{
str = "str";
sb.append("stringbuffer");
}
}


代码运行结果:

string类型传递:
stringbuffer传递:stringbuffer

String 和StringBuffer传递的都是引用性变量,不同的是String类是final不可变类,当str变量(即string对象的存储地址)的副本传递到chang方法时,按道理来说,修改此副本中的对象内容即会修改原str变量中对应的内容,但是因为string类的不可变性,当修改副本中的内容时,jvm会新一块内存区域,并且内存中的内容为“str”,原str变量对应的内存块内容没有发生变化。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java string