当前位置: 技术问答>java相关
StringBuffer
来源: 互联网 发布时间:2015-02-13
本文导语: class lal { public void fit(StringBuffer l) { String g=l+"nitin"; System.out.println(g); } public static void main(String[]args) { lal l=new lal(); StringBuffer b=new StringBuffer("funkid"); l.fit(b); System.out.println(b); } } print ...
class lal
{
public void fit(StringBuffer l)
{
String g=l+"nitin";
System.out.println(g);
}
public static void main(String[]args)
{
lal l=new lal();
StringBuffer b=new StringBuffer("funkid");
l.fit(b);
System.out.println(b);
}
}
print
funkidnitin
funkid
为什么???
{
public void fit(StringBuffer l)
{
String g=l+"nitin";
System.out.println(g);
}
public static void main(String[]args)
{
lal l=new lal();
StringBuffer b=new StringBuffer("funkid");
l.fit(b);
System.out.println(b);
}
}
funkidnitin
funkid
为什么???
|
看看变量的作用范围。
|
你的 b 和 g当然不一样了
g 是b+nitin没错阿!
g 是b+nitin没错阿!
|
java 中的引用可以看作C中的指针,java中的字符串 + 操作
每次都产生一个新的 String 对象,等价与new String()操作。
在你的例子中:
b 开始指向了一段内容是"funkid"的内存区域,
在fit方法中,g 被赋值为另外一个String 对象,而不是原来b指向
的对象,打印出来当然不一样了
每次都产生一个新的 String 对象,等价与new String()操作。
在你的例子中:
b 开始指向了一段内容是"funkid"的内存区域,
在fit方法中,g 被赋值为另外一个String 对象,而不是原来b指向
的对象,打印出来当然不一样了
您可能感兴趣的文章:
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。