当前位置:  技术问答>java相关

关于Stringbuffer作为参数传递的问题

    来源: 互联网  发布时间:2015-06-25

    本文导语:  1. public class Foo { 2.   public static void main (String [] args)  { 3.      StringBuffer a = new StringBuffer (“A“); 4.      StringBuffer b = new StringBuffer (“B“); 5.     operate (a,b); 6.     system.out.printIn{a +“ ”...

1. public class Foo {
2.   public static void main (String [] args)  {
3.      StringBuffer a = new StringBuffer (“A“);
4.      StringBuffer b = new StringBuffer (“B“);
5.     operate (a,b);
6.     system.out.printIn{a +“ ”+b};
7. )
8. static void operate (StringBuffer x, StringBuffer y)  {
9.           x.append (y);
10.           y = x;
11.     }
12. } 

What is the result? 

请帮忙解释一下,谢谢

|
AB B
变量abxy中存储的是StringBuffer变量的引用而不是一个StringBuffer对象。根据非基本类型参数传递为引用传递的规则,operate接收的参数只是StringBuffer对象的引用.因此可以理解为x、a都是指向同一个对象;b、y也是指向同一个StringBuffer对象,所以x.append(y)将导致x和a同指的StringBuffer对象改变(增加"B");而y=x只是让变量y改变指向为和x相同的StringBuffer对象,而y原来所指的对象并不会发生任何改变。

|
在java中,类的传递都是按引用,也就是地址传递,所以会有你的得到的结果。
但是普通类型是值传的。在类中,String是个特殊的。因为在传递的时候,实际上是传了一个副本,所以看起来也想是值传。

|
a==>'a+b'
b==>'b'

|
同意楼上的,答案为 AB B

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.lang类stringbuffer的类成员方法: stringbuffer定义及介绍
  • 关于StringBuffer的问题
  • java命名空间java.lang类stringbuffer的类成员方法: capacity定义及介绍
  • 请问在jbuilder中如何将String类型的字符串赋值给StringBuffer类型的变量?
  • java命名空间java.lang类stringbuffer的类成员方法: append定义及介绍
  • StringBuffer
  • java命名空间java.lang类stringbuffer的类成员方法: trimtosize定义及介绍
  • 任何比较两个StringBuffer对象是否相同
  • java命名空间java.lang类stringbuffer的类成员方法: appendcodepoint定义及介绍
  • String和StringBuffer的区别!?!糊了
  • java命名空间java.lang类stringbuffer的类成员方法: delete定义及介绍
  • 一个关于stringbuffer的问题
  • java命名空间java.lang类stringbuffer的类成员方法: tostring定义及介绍
  • 关于string&stringBuffer
  • java命名空间java.lang类stringbuffer的类成员方法: reverse定义及介绍
  • 深入解析StringBuffer和StringBuilder的区别
  • java命名空间java.lang类stringbuffer的类成员方法: deletecharat定义及介绍
  • 各位高手:String 和 StringBuffer这两个类有什么区别。
  • java命名空间java.lang类stringbuffer的类成员方法: ensurecapacity定义及介绍
  • 请问如何把StringBuffer 的对象转化成一个InputStream 的对象,或者InputStream 子类的对象也可以!
  • java命名空间java.lang类stringbuffer的类成员方法: substring定义及介绍
  • java_String和StringBuffer区别分析


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3