数组传递的是referrence,而不是object

来源:互联网 发布:瘦水肿腿 知乎 编辑:程序博客网 时间:2024/05/16 11:21

数组传递的是referrence,而不是object

 

public class TestArrayMemory{
  
public static void main(String[] args){
    A a 
= new A();
    System.out.println(
"A's sbs[0] = " + a.getSbs(0));
    StringBuffer sb 
= a.getSbs()[0];
    StringBuffer sb2 
= a.getSbs(0);
    System.out.println(
"sb = " + sb);
    System.out.println(
"sb2 = " + sb2);
    a.setSbs(
0"def");
    System.out.println(
"A's sbs[0] = " + a.getSbs(0));
    System.out.println(
"sb = " + sb);
    System.out.println(
"sb2 = " + sb2);
  }


}


class A{
  
  
private StringBuffer[] sbs;
  
private int len = 2;

  
public A(){
    sbs 
= new StringBuffer[len];
    
for(int i = 0; i<len; i++){
      sbs[i] 
= new StringBuffer("abcd");
    }

  }


  
public void setSbs(int index, String str){
    sbs[index].append(str);
  }


  
public StringBuffer getSbs(int index){
    
return sbs[index];
  }

  
  
public StringBuffer[] getSbs(){
    
return sbs;
  }

}



result:

A's sbs[0] = abcd
sb = abcd
sb2 = abcd
A's sbs[0] = abcddef
sb = abcddef
sb2 = abcddef 

原创粉丝点击