黑马程序员技术交流社区

标题: 求指教 [打印本页]

作者: 张清华    时间: 2015-6-7 23:15
标题: 求指教
        public class StringDemo {
        public static void main(String[] args) {
                String s="abc";
                change(s);
                System.out.println(s);//abc
        }
        public static void change(String s){
                s+="hello";
                System.out.println(s);//abchello
        }
        }
两个输出的结果为什么 一个是abc 一个是abchello
作者: an_lucas    时间: 2015-6-7 23:23
String类型是存在常量池中的,所以你可以把String当作基本数据类型来理解,所以形参的改变不会引起实参的变化,如果你把String当作引用类型理解那就错了,虽然字符串是对象,但它是一个很特殊的对象。
作者: pizhihui    时间: 2015-6-7 23:26
String是特殊的引用型数据,在做实参传入的时候,相当于基本数据类型的规则,也就是,不影响实参的结果,参数的改变只是在方法内部。
作者: 张清华    时间: 2015-6-8 01:03
好的 非常感谢




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