一、HashSet的底層由HashMap實現。html
二、transient關鍵字:做用是控制變量的序列化,在變量聲明前加上該關鍵字,能夠阻止該變量被序列化到文件中,在被反序列化後,transient 變量的值被設爲初始值,如 int 型的是 0,對象型的是 null。java
三、序列化:將 Java 對象序列化爲二進制文件。https://www.ibm.com/developerworks/cn/java/j-lo-serial/index.html數組
四、spliterator方法:JDK 1.8 中添加,建立集合的分片迭代器。htm
public static void main(String[] args) throws Exception { Employee emp = new Employee(); emp.name = "Tom"; Employee emp2 = new Employee(); emp2.name = "Jerry"; Collection<Employee> set = new HashSet<>(); set.add(emp); set.add(emp2); Spliterator<Employee> spl = set.spliterator(); while (spl.tryAdvance(new Consumer<Employee>() { public void accept(Employee employee) { employee.name += "_09"; } })); for (Employee employee : set) { System.out.println(employee.name); } Spliterator<Employee> spl2 = set.spliterator(); while (spl2.tryAdvance(e -> e.name += "_10")); for (Employee employee : set) { System.out.println(employee.name); } }
五、Cloneable接口:一個標記性接口,是淺拷貝,意味着若是你的類中有數組,Collection,對象,那麼僅僅拷貝的是這些變量的引用,並無將數組,集合中的成員對象複製成新的。對象
public class Employee implements Cloneable { public int age; public String name; public Employee clone() { Employee ee = null; try { ee = (Employee) super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return ee; } }
public static void main(String[] args) { Employee ee = new Employee(); ee.age = 21; ee.name = "clone"; Employee ee1 = ee.clone(); ee1.name = "clone1"; System.out.println(ee.name); System.out.println(ee.age); System.out.println(ee1.name); System.out.println(ee1.age); }