オブジェクトをコピーする際は、新たに領域が確保されるわけではなく、参照のコピーとなる。
恐らく動作は、メソッドへの引数渡しと同じと思われる。
そのため、コピー先の内容を変更するとコピー元の内容まで書き換わってしまうので注意。
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
となる。