ITedite

オブジェクトのコピー

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

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
となる。