黑马程序员技术交流社区

标题: 关于StringBuffer和String的问题,欢迎交流 [打印本页]

作者: boom_pm2.5    时间: 2016-11-14 00:19
标题: 关于StringBuffer和String的问题,欢迎交流
上干货~
public class StringBuffer_YinYong {

        public static void main(String[] args) {
                String s = "heima";
                System.out.println(s);
                change(s);
                System.out.println(s);
                System.out.println("----------------------");
               
                StringBuffer sb = new StringBuffer("heima");
                System.out.println(sb);
                change(sb);
                System.out.println(sb);
        }

         private static void change(StringBuffer sb) {       
                sb.append("itcase");
               
        }
                 private static void change(String s) {
                s=s+"itcase";
}
}
如题:
        请问一下,我今天在学习StringBuffer和String  作为形式参数 时, 他们的区别让我不是很能理解.
        记得当时老师说的是,String 和StringBuffer 一个相当于基本数据类型做为形式参数进行 值得传递,
         另外一个是传的址,
        话是这么说,但是总觉得  String  作为形式参数接受值  的时候,它接收的难道不是一个 具体的  地址吗?
        刚学到 String 类型的时候,   老师曾经说过.String s1 = "abc";
        abc  这个字符串是在 方法区中开辟了一片区域,然后将  地址赋值 给了  s1 ,但是现在的问题就是,String
        作为形式参数在接受,或者传递值得时候,难道不是传的方法区的地址吗?   
        求解

作者: boom_pm2.5    时间: 2016-11-14 00:21
是在是不能理解啊
作者: 天秋雨    时间: 2016-11-14 10:35
string是传递的地址,buffer才是传的值。

作者: X_iaY_u    时间: 2017-10-5 23:46
“问题就是,String作为形式参数在接受,或者传递值得时候,难道不是传的方法区的地址吗? ”是




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2