黑马程序员技术交流社区
标题: 关于StringBuilder的疑惑 [打印本页]
作者: 小洋人最happy 时间: 2012-12-25 14:12
标题: 关于StringBuilder的疑惑
public classStringBuilderTest {
public static void main(String[] args) {
StringBuilders1 = newStringBuilder("hello");
StringBuilders2 = newStringBuilder("java");
show(s1,s2);
System.out.println(s1+"......."+s2);
}
private static void show(StringBuilder s1,StringBuilder s2) {
s1.append(s2);
s1= s2;//这个不是付给s1了吗
}
}
为什么打印结果是hellojava。。。。。Java
作者: 高境 时间: 2012-12-25 14:17
s1.append(s2);是将s2添加到s1的末尾处,所以s1变成了hellojava
作者: 管冉 时间: 2012-12-25 14:19
必须先实例化一个:
stringBuilder sBuilder = new stringBuilder();
可以拼接执行SQL语句,易于阅读
sBuilder.Append("select * from tb1");
sBuilder.Append("where id=1");
作者: 郭金龙 时间: 2012-12-25 14:51
你好,我把你变量名改了一下,你能看出原因吗?
public class StringbuilderTest {
public static void main(String[] args) {
StringBuilder s1 = new StringBuilder("hello");
StringBuilder s2 = new StringBuilder("java");
show(s1,s2);
System.out.println(s1+"......."+s2);
}
private static void show(StringBuilder s3,StringBuilder s4) {
s3.append(s4);
System.out.println("1->"+s3);
System.out.println("1->"+s4);
s3= s4;//这个不是付给s1了吗
System.out.println("2->"+s3);
System.out.println("2->"+s4);
}
}
运行的结果是:
1->hellojava
1->java
2->java
2->java
hellojava.......java
希望对你有帮助!
作者: 李栋伟 时间: 2012-12-25 15:13
郭金龙 发表于 2012-12-25 14:51
你好,我把你变量名改了一下,你能看出原因吗?
public class StringbuilderTest {
public static void ...
你也可以把main()方法中的show(s1,s2);注释掉。然后把show()方法中内容直接写到main()方法中。与改变量这个段代码对比分析一下。仔细分析一下赋值。内存地址- public static void main(String[] args) {
- StringBuilder s1 = new StringBuilder("hello");
- StringBuilder s2 = new StringBuilder("java");
- //show(s1,s2);
- s1.append(s2);
- System.out.println("s1---"+s1);
- s1= s2;
- System.out.println("s1---"+s1);
- System.out.println("s2---"+s2);
- System.out.println("s1====="+s1);
- System.out.println(s1+"......."+s2);
- }
复制代码 运行结果:
-
QQ截图20121225151145.png
(1.47 KB, 下载次数: 32)
作者: 黄锦成 时间: 2012-12-25 15:16
本帖最后由 黄锦成 于 2012-12-25 15:19 编辑
这个我解决了,发个图给你看看[attach]11011[/attach]
-
QQ截图20121225151817.png
(14.23 KB, 下载次数: 37)
对象在内存中的情况
作者: 黄锦成 时间: 2012-12-25 16:08
黄锦成 发表于 2012-12-25 15:16
这个我解决了,发个图给你看看
这个是我的个人见解。以前我在学习内存分布这一块,学了挺久,后来看了张老师的视频,才入门了。张老师有句话,不要只看表面,要看在内存中的分布情况
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |