20180223
<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關鍵字的引用:
子類的構造函數默認第一行會默認調用父類無參的構造函數,隱式語句
子類顯式調用父類構造函數
?
轉載于:https://www.cnblogs.com/meisp/p/8460869.html
總結
- 上一篇: 唐宇迪学习笔记2:Python数据分析处
- 下一篇: 新建用户、付权限命令