<1>集合对象转数组

Object[] arrayOfObject = list.toArray();

<2>数组复制

int[] arr1 = {1, 2, 3, 4, 5};
int[] arr2 = Arrays.copyOf(arr1, arr1.length);

Arrays的copyOf()方法传回的数组是新的数组对象,所以您改变传回数组中的元素值,也不会影响原来的数组。
copyOf()的第二个自变量指定要建立的新数组长度,如果新数组的长度超过原数组的长度,则保留数组默认值

<3>hashmap的深复制与浅复制:

浅复制:则是只复制对象的引用,两个引用仍然指向同一个对象,在内存中占用同一块内存。

深复制:被复制对象的所有变量都含有与原来的对象相同的值,除去那些引用其他对象的变量.深复制把要复制的对象所引用的对象都复制了一遍。

Map<String, String> m1 = new HashMap<String, String>();  

// do sth here  

Map<String, String> m2 = new HashMap<String, String>();  

m2=m1;  //只传递了一个引用,所有m1的值变化之后m2自然也跟着变了

m2.putAll(m1); //将m2生成一个新的map,即使m1变化之后也并不会影响m2的值 ,如果被复制的对象本身含有引用类型的对象,则此方法不能实现深复制

//实现对象的深复制

public class CloneUtils {

	@SuppressWarnings("unchecked")
	public static <T extends Serializable> T clone(T obj){
		
		T clonedObj = null;
		try {
			ByteArrayOutputStream baos = new ByteArrayOutputStream();
			ObjectOutputStream oos = new ObjectOutputStream(baos);
			oos.writeObject(obj);
			oos.close();
			
			ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
			ObjectInputStream ois = new ObjectInputStream(bais);
			clonedObj = (T) ois.readObject();
			ois.close();
			
		}catch (Exception e){
			e.printStackTrace();
		}
		
		return clonedObj;
	}
}
<3>super关键字的引用:
子类的构造函数默认第一行会默认调用父类无参的构造函数,隐式语句

子类显式调用父类构造函数