- 849 名前:仕様書無しさん [03/08/29 00:13]
- 今日JAVAの問題やってて迷ったんですけど、
質問があるです。おねーげします。 public class Sample { public static void main(String[] args){ StringBuffer stb = new StringBuffer("java"); method(stb); System.out.println("test["+stb+"]"); } static void method(StringBuffer stb1){ stb1.append("c"); stb1 = new StringBuffer("c++"); } } これの実行結果は、 test[javac]となるんですが、 納得できないです。。 stb1.append("c");で、"javac"になるのはわかるんですが、 さらに、stb1 = new StringBuffer("c++");が実行されたときに stbは、新しいオブジェクト"c++"を指すようになり、"c++"が表示される ものと思っていたんだけど、どうやら、ちがうみたいで。 stb1 = new StringBuffer("c++");が実行されると、 "javac"オブジェクトを指していたのが、 "c++"オブジェクトを指すようになり、"javac"オブジェクトは どこからも参照されなくなると思っていたんだけど。。 もしかして、根本的に考え方がちがっていますか???
|

|