java(String和StringBuffer分别作为参数传递)
package com.day8.StringBuffer;
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);
}
public static void change(String s) {
s+="itcast";
}
public static void change1(StringBuffer sb) {
//sb+="KG";错误,不能这样写
sb.append("KG");
}
}