黑马程序员技术交流社区
标题:
String类和StringBuffer小试下
[打印本页]
作者:
山里孩子
时间:
2015-3-24 23:01
标题:
String类和StringBuffer小试下
下面代码的输出结果是什么呢?
class StringTest
{
public static void main(String[] args)
{
String str = "Hello";
change(str);
System.out.println(str);
}
public static void change(String str)
{
str += "abc";
}
}
//更改为StringBuffe呢?
class StringTest
{
public static void main(String[] args)
{
StringBuffer str = new StringBuffer("Hello");
change(str);
System.out.println(str);
}
public static void change(StringBuffer str)
{
str.append("abc");
}
}
复制代码
作者:
liyanghml
时间:
2015-3-24 23:52
本帖最后由 liyanghml 于 2015-3-25 00:27 编辑
第一个结果:Hello
第二个结果:Helloabc
第一个:我以为是虽然调用change方法但是。内部并没有具体的把你所要改变的值取出来,所以输出的时候,str并没有改变。应该这样写,如果要输出Helloabc的话:
class Test1
{
public static void main(String[] args)
{
String st = "Hello";
change(st);
}
public static void change(String str)
{
str += "abc";
System.out.println(str);
}
}
作者:
有丶时候
时间:
2015-3-25 00:12
我记得视频里老师好像说过,在内存中定义好了的String字符串是不会被改变的,所以第一个输出的依然是Hello,第二个是Helloabc
作者:
和谐木马
时间:
2015-3-25 00:47
这听说是道面试题,见过的!挺有代表性!
作者:
Iterater
时间:
2015-3-25 10:18
str是一个变量,在调用带参数的方法时,实参的值传递给形参的过程中,如果实参是变量而不是直接量,
则只将该变量的值传递给形参。无论形参在方法中是否改变,该实参变量都不受影响。
作者:
高光天
时间:
2015-3-25 11:16
liyanghml 发表于 2015-3-24 23:52
第一个结果:Hello
第二个结果:Helloabc
第一个:我以为是虽然调用change方法但是。内部并没有具体的把你 ...
果真啊 二级常考这样的题 又被骗了一次
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2