黑马程序员技术交流社区
标题:
关于字符串的一点问题
[打印本页]
作者:
IT初学者
时间:
2014-9-3 22:32
标题:
关于字符串的一点问题
看看了毕老师讲字符串。有个问题,字符串是常量这个我懂,可是老师不是说了,String s1= “abc”,只是s1指向了字符串“abc”,那么如果将字符串作为方法的参数传递时,传的是什么?我认为应该是引用(而不是值),可是下面的代码却证明是传值。求大神解释下!
public class Demo {
public static void main(String[] args) {
String s1 = "java";
String s2 = "hello";
method_1(s1,s2);
System.out.println(s1+"....."+s2);
}
public static void method_1(String s1, String s2)
{
s1 = s2;
}
复制代码
作者:
IT初学者
时间:
2014-9-3 22:33
代码的结果还是 java.......hello
作者:
cs8630323
时间:
2014-9-4 15:49
java只有值传递,引用类型参数,传的是引用的copy,指向同一个对象。方法内s1=s2,改变的是copy指引的指向,方法结束就销毁了。
作者:
新新人类嘿嘿嘿
时间:
2014-9-4 16:12
传的还是引用啊。只是main方法里的s1和自定义方法中形参s1指向了同一个地址,s2也一样的道理。在自定义方法里的s1和s2再怎么变化,也和main方法中的s1和s2无关啊。这样说能明白否?
作者:
IT初学者
时间:
2014-9-5 18:55
新新人类嘿嘿嘿 发表于 2014-9-4 16:12
传的还是引用啊。只是main方法里的s1和自定义方法中形参s1指向了同一个地址,s2也一样的道理。在自定义方法 ...
嗯,对啊。钻牛角尖了,总以为传引用,那么在操作时,原来的会跟着变,受数组的传引用影响太深了,谢谢了!
作者:
花花公子
时间:
2014-9-6 16:15
183461636@qq.com
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2