1.抽象類中可以有沒有抽象方法,只有普通方法。
2.接口中可以沒有任何方法。
3.實現(xiàn)了Collection接口的有set、list、Queue,TreeSet、HashSet實現(xiàn)了set接口,Vector、Stack實現(xiàn)了list接口。
4.實現(xiàn)了map接口的有HashTable、TreeMap、SortedMap、LinkedHashMap。
5.HashMap鍵值允許為null,他是不同步的,而HashTable相反,HashMap解決hash沖突的方式是用鏈表。
6.Arrays.asList(),中參數(shù)必須是引用類型,如Integer[] t = {1,2,3};并且返回的list是固定大小的,不等添加、刪除元素。Arrays.asList()方法返回一個ArrayList對象。
7.java類中構造函數(shù)、靜態(tài)代碼塊、執(zhí)行順序。
上溯到Object類,先執(zhí)行Object類的靜態(tài)代碼塊,再向下執(zhí)行子類的靜態(tài)代碼塊,知道所有的類靜態(tài)代碼塊執(zhí)行完,然后開始執(zhí)行父類的構造函數(shù),再執(zhí)行子類的構造函數(shù)。
8.靜態(tài)代碼塊中不能調用非靜態(tài)方法,靜態(tài)方法中不能使用this關鍵字。
9.DateFormat 和 SimpleDateFormat 類是非線程安全的,在多線程環(huán)境下調用 format() 和 parse() 方法應該使用同步代碼來避免問題。SimpleDateFormat繼承了DateFormat,在DateFormat中定義了一個protected屬性的 Calendar類的對象:calendar。只是因為Calendar累的概念復雜,牽扯到時區(qū)與本地化等等,Jdk的實現(xiàn)中使用了成員變量來傳遞參數(shù),這就造成在多線程的時候會出現(xiàn)錯誤。
10.HashTable是一個線程安全的類,它使用synchronized來鎖住整張Hash表來實現(xiàn)線程安全,即每次鎖住整張表讓線程獨占。
11.ConcurrentHashMap允許多個修改操作并發(fā)進行,其關鍵在于使用了鎖分離技術。它使用了多個鎖來控制對hash表的不同部分進行的修改。ConcurrentHashMap內部使用段(Segment)來表示這些不同的部分,每個段其實就是一個小的Hashtable,它們有自己的鎖。只要多個修改操作發(fā)生在不同的段上,它們就可以并發(fā)進行。
12.ArrayList和LinkedList的remove性能不一樣,LinkedList性能比ArrayList高,因為ArrayList底層采用數(shù)組實現(xiàn),而LinkedList是雙向鏈表實現(xiàn)。ArrayList和LinkedList都是非線程安全的,都實現(xiàn)了list接口。
13.所有異常類的基類是Throwable。
14.java中定義類時不能同時使用final、abstract關鍵字。
15.Java對象鎖
15.OSI七層模型
OSI中的層 功能 TCP/IP協(xié)議族
應用層文件傳輸,電子郵件,文件服務,虛擬終端 TFTP,HTTP,SNMP,F(xiàn)TP,SMTP,DNS,Telnet
表示層數(shù)據(jù)格式化,代碼轉換,數(shù)據(jù)加密沒有協(xié)議
會話層解除或建立與別的接點的聯(lián)系沒有協(xié)議
傳輸層提供端對端的接口 TCP,UDP
網絡層為數(shù)據(jù)包選擇路由 IP,ICMP,RIP,OSPF,BGP,IGMP
數(shù)據(jù)鏈路層傳輸有地址的幀以及錯誤檢測功能 SLIP,CSLIP,PPP,ARP,RARP,MTU
物理層以二進制數(shù)據(jù)形式在物理媒體上傳輸數(shù)據(jù) ISO2110,IEEE802,IEEE802.2