本文地址:http://www.cnblogs.com/maplefighting/p/8012196.html html
一、新程序中不該該使用過期的Vector,Hashtable和Stackjava
二、 (1) ==對於基本數據類型,判斷兩個變量是否相等算法
(2) equals不能用於基本數據類型數據庫
(3) == 比較可能是內存地址,equals比較的是值express
(4) object類中 equals與==是同樣的,而String,Integer重寫了equals方法編程
(5) == 比 equals 快設計模式
三、java方法參數:數組
(1)一個方法不能改變一個基本數據類型的參數安全
(2)一個方法能夠改變一個對象參數的狀態mvc
(3)一個方法不能讓對象參數引用另外一個新的對象
四、Java8 新特性
(1)接口的默認方法
interface Form{
default double sqrt(int a) { return ...;}
}
(2)lambda表達式:(param) -> (expression) , (param) -> {statements}
爲函數式接口的一個具體實現實例
(3)方法引用
(4)函數式接口 :只定義一個抽象方法的接口
(5)Stream API
(7) Data Time API
(8) Optional類
五、在覆蓋一個方法的時候,子類方法不能低於超類方法可見性
六、在Java程序設計語言中,全部鏈表其實是雙向鏈表
七、LinkedHashSet 和LinkedHashMap按訪問順序迭代
八、必須把package放在第一句
九、一個.class文件有且只有一個類編譯後class
十、struts是mvc的一種實現,控制:struts-config.xml,角色爲ActionServlet,模型:ActionForm,Action,JavaBean
十一、Java鎖的類型:(1)自旋鎖 (2)阻塞鎖 (3)可重入鎖 (4)讀寫鎖 (5)互斥鎖 (6) 悲觀鎖 (7) 樂觀鎖 (8) 公平鎖 (9) 非公平鎖
(10) 偏向鎖 (11) 對象鎖 (12) 線程鎖 (13) 鎖粗化 (14) 輕量級鎖 (15) 鎖消除 (16) 鎖膨脹 (17) 信號量
十二、字符型 默認值:'\u0000' 範圍0~2^16 -1
1三、Arrays.asList() 將一個數組轉化成List ,返回ArrayList對象,但並不是java.util.ArrayList類,而是Arrays的靜態內部類
1四、Java接口容許定義成員,但必須是常量
1五、Java程序的種類有Applet,Application,Servlet
1六、集合類主要分爲兩大類:Collection和Map
(1)ArrayList是基於數組實現,不是線程安全,能夠用Collection.SynchronizedList(List l)返回線程安全類
默認容量爲10,擴容時在原來基礎上加上容量的一半
(2)LinkedList是一個集成與AbstractSequentialList的雙向鏈表,能夠看成棧,隊列或雙端隊列。
非同步的
實現序列化,寫入到輸出流時,先寫「容量」,再寫數據。讀出輸入流時,先取「容量」
對比:對於隨機訪問get和set。ArrayList優於LinkedList
當插入數據量很小時,二者相差不大,當插入的數據量大時,大約在1/10之間。LinkedList會優於ArrayList。
1七、HashMap
a、默認容量爲16,2的冪
b、加載因子 0.75f,哈希表達到時自動增加
c、初始化table是在第一次往hashMap put時
d、返回索引位置indexFor,返回h&(length-1)。必須是2的冪,使數據均勻分佈
e、jdk1.8 擴容時要麼在原位置,要麼再移動2次冪。小於6時變鏈表,大於8時變樹,數組長度大於64時才考慮樹
1八、LinkedHashMap 非線程安全,LRU算法。雙向循環鏈表,在HashMap上封裝的
1九、Java基本數據類型 byte 8,short 16,int 32,long 64,float 32,double 64,boolean,char 16(unicode)
20、Object的重要方法:equals() hashcode() toString() clone() (Java只實現淺拷貝,我的沒驗證過) notify() notifyAll() wait() (可用於生產者消費者)
2一、Object Throwable Error
Exception InterruptedException
IOException
RuntimeException
Error不該該捕獲,爲虛擬機問題
runtimeException能夠不try/catch
try能夠不加catch
2二、Java IO與NIO
IO 面向流 阻塞IO 無選擇器
NIO 面向緩衝 非阻塞IO 有選擇器
Java IO主要用裝飾模式,適配器模式
標準的IO基於字節流與字符流進行操做,NIO經過通道和緩衝區進行操做。NIO能夠異步使用IO
Java NIO主要有Channels,Buffers,Selectors
NIO可使用(selector)一個(或幾個單線程)管理多個通道
若是每一個鏈接只發送少許數據,可使用NIO,若是有少許鏈接發送大量數據使用IO
2三、sleep和wait的區別
sleep是 Thread方法 wait是Object方法
不會釋放鎖 會釋放鎖
2四、Lock的await/signal和Object的wait/notify區別
(1)Lock不用synchroinzed把同步代碼包裝起來
synchroinzed(obj) {
wait(); //signal();
}
(2)阻塞須要另外一個對象condition
ReetrantLock lock = new ...();
Condition condition = lock.newCondition();
lock.lock();
condition.await(); //condition.signal();
lock.unlock();
2五、equals相等,hashcode必定相等
對象相等,hashcode必定相等。hashcode相等,對象未必相等
基本變量沒有hashcode和equals方法
hashMap,hashSet要重寫hashcode
hashcode 返回int (將對象內部地址轉換)
2六、(1) static 方法只能訪問static方法,不能訪問非static。
能夠object.method和class.method
存儲在數據區
(2) final類不能被繼承,例如String
方法能夠被繼承但不能被覆蓋
2七、Java三大特性:封裝,繼承,多態 //(抽象)
繼承:子類繼承父類,使子類具備父類的屬性和方法,有效實現代碼複用
多態:子類重寫父類方法,父類類型引用指向子類對象,動態調用
Java語言特色:面向對象,跨平臺,安全
2八、使用抽象類是爲了代碼複用,使用接口是爲了實現多態
(1) abstract有本身的數據成員,interface只有 final static成員
(2) abstract能夠有非抽象方法,接口中不能有(jdk8有默認方法)
(3)Java能夠實現多個接口
2九、類初始化**:父類靜態變量->父類靜態代碼塊->子類靜態變量->子類靜態代碼塊->父類非靜態變量->父類非靜態代碼塊->父類構造函數->子類......
30、final必定要初始化
3一、二叉樹度數表示該節點分叉
n0 = n2 + 1 n = n0 + n1 + n2
3二、重載,參數類型和個數,順序不一樣,沒法以返回類型做爲區分。 能夠有不一樣返回類型,修飾符,異常
3三、靜態能夠訪問靜態,不能訪問非靜態。非靜態均可以
3四、jre包含jvm,基本類庫。 jdk包含jre,包含編譯器,開發工具和類庫
3五、同步:指用戶進程觸發I/O並等待或輪詢是否就緒
異步:觸發I/O後作本身的事情,當I/O完成時會獲得通知
阻塞:試圖對文件讀寫時,沒有東西...進入等待
非阻塞:沒有東西可讀或不可寫時,立刻返回
3六、Java編譯成字節碼後,jvm解釋運行
二進制文件 .class
解釋型語言
3七、jdbc橋接模式。提供兩套接口,一個面向數據庫廠商,一個面向JDBC使用者
3八、設計模式六大原則
(1)單一職責:一個類只負責一項職責
(2)里氏替換:子類能夠擴展父類的功能,但不能改變父類功能
(3)依賴倒置:抽象不該該依賴細節,細節應該依賴抽象
(4)接口隔離
(5)迪米特原則:一個對象應該對其餘對象保持最少的瞭解
(6)開閉原則:對擴展開放,對修改關閉
3九、boolean不能和任何類型轉換
40、Integer i = 59 時會調用integer.valueOf() 方法
該方法返回一個Integer對象,若是i在[-128,127]之間,若是存在IntegerCache.cache的值,則返回引用,不然new一個對象
int基本類型與其餘 ==比較,只比較值
4一、(1)加強for (foreach)循環時不能使用集合刪除元素
(2)加強for不能使用迭代器中的方法
(3)加強for有便利元素,普通for沒有
普通for比較適合list類(數組)
加強for比較適合鏈表結構
參考書籍:Java核心技術卷,大話設計模式(大鳥,小菜),設計模式(挺有趣的一本書),effective java,Java 8實戰,java編程思想(有點老了)
--------------------------------------------------------------------------------------------------------------
以上爲maplefighting我的筆記整理,若有出錯,歡迎指正