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");
  }
}

原文地址:https://www.cnblogs.com/zhujialei123/p/8137218.html