首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java相关 >

StringBuffer相关有关问题

2013-01-28 
StringBuffer相关问题public class MyClass{static void aMethod(StringBuffer sf1,String sf2){sf1.appen

StringBuffer相关问题
public class MyClass{
      static void aMethod(StringBuffer sf1,String sf2){
         sf1.append(sf2);
        sf2  = sf1;
     }
     public statc void main(String[] args){
             StringBuffer sf1 = new StringBuffer("A");
             StringBuffer sf2 = new StringBuffer("B");
             aMethod(sf1,sf2);
             System.out.println(sf1+":"+sf2);//AB:B
      }
}
谁能解释一下这个结果,我在aMethod中用sf1 == sf2 ,sf1.equals(sf2) 怎么都为true? string class stringbuffer
[解决办法]
楼主的代码,aMethod(StringBuffer sf1,StringBuffer sf2) 这个方法里的变量sf1,sf2和main方法里的sf1,sf2同名,但是不同的变量。
开始时它们都指向同一个对象,但当运行到sf2=sf1时,让方法aMethod内的这个sf2指向了sf1,这时的sf2和外边的sf2已经没关系了.(sf1没变,里面的和外边的指向同一个对象)。
前段时间看到过火龙果的一个回帖,讲这个方法参数的传递和变化,后来找不到这个帖子了,楼主可以找找,看了那个帖子,就会一清二楚了。(主要是画了很多图)。

或者,楼主把方法内的变量换一下,比如叫asf1,asf2,更好理解。

热点排行