A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

上干货~
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
        作为形式参数在接受,或者传递值得时候,难道不是传的方法区的地址吗?   
        求解

3 个回复

倒序浏览
是在是不能理解啊
回复 使用道具 举报
string是传递的地址,buffer才是传的值。
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
“问题就是,String作为形式参数在接受,或者传递值得时候,难道不是传的方法区的地址吗? ”是
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马