package com.day8.StringBuffer;app
public class Demo7StringBuffer {对象
/**
*常见对象(String和StringBuffer分别做为参数传递)
* A:形式参数问题
* String做为参数传递
* StringBuffer做为参数传递
* B:案例演示
* String和StringBuffer分别做为参数传递问题
*( 基本数据类型的值传递,不改变其值
* 引用数据类型的值传递,改变其值
* String类虽然是引用数据类型,可是它当作参数传递时和基本数据类型是同样的
* StringBuffer是引用数据类型,当作参数传递时改变其值)
*/
public static void main(String[] args) {
String s="KobeBryant";
change(s);
System.out.println(s);//KobeBryant,由于change()方法先加载到栈内存中,用完就弹栈,因此打印s仍是原来的s
info(s);//KobeBryantKG
StringBuffer sb=new StringBuffer("Kobe");
sb.append("Bryant");
System.out.println(sb);//KobeBryant
change1(sb);
System.out.println(sb);//KobeBryantKG
}内存
public static void info(String s1) {
s1+="KG";
System.out.println(s1);
}it
public static void change(String s) {
s+="itcast";
}
public static void change1(StringBuffer sb) {
//sb+="KG";错误,不能这样写
sb.append("KG");
}
}ast