オブジェクトをコピーする際は、新たに領域が確保されるわけではなく、参照のコピーとなる。
恐らく動作は、メソッドへの引数渡しと同じと思われる。
そのため、コピー先の内容を変更するとコピー元の内容まで書き換わってしまうので注意。
import java.util.*; class ObjCopyTest{ public static void main(String args[]){ Hashtable ht1 = new Hashtable(); Hashtable ht2; ht1.put("a","abc"); System.out.println(ht1.get("a")); ht2 = ht1; // 参照コピー ht2.put("a","efg"); System.out.println(ht1.get("a")); System.out.println(ht2.get("a")); } }
上記ソースの実行結果は
abc
efg
efg
となる。
コメントを残す