日常複習資料(保持更新,有錯誤的歡迎評論區反饋,謝謝!)

第一章  java基礎
    第一節    java基本數據類型
        Java語言提供了八種基本類型。六種數字類型(四個整數型,兩個浮點型),一種字符類型,還有一種布爾型。
        byteshortintlongfloat、doule、char、boolean;
        
        String 不是基本數據類型。
        
    第二節    java訪問控制修飾符
        Java 支持 4 種不同的訪問權限。
        
        default (即默認,什麼也不寫): 在同一包內可見,不使用任何修飾符。使用對象:類、接口、變量、方法。

        private : 在同一類內可見。使用對象:變量、方法。 注意:不能修飾類(外部類)

        public : 對所有類可見。使用對象:類、接口、變量、方法

        protected : 對同一包內的類和所有子類可見。使用對象:變量、方法。 注意:不能修飾類(外部類)。
        
    第三節    java面向對象(封裝、繼承、多態)
        封裝:將內部實現方式進行隱藏,方便調用者使用,以及避免重複實現代碼。
        繼承:子類可以繼承父類的方法,也可以重寫父類的方法。
        多態:多態是基於繼承實現的。
    
    第四節    Java 集合框架
        
        ArrayList: 底層基於數組實現容量大小動態變化,允許 null 的存在。第一次add的時候容量會變成10;之後add會判斷容量,需要擴充的時候會新增一個數組,再將原來的數據複製進去,它類似的是LinkedList,和LinkedList相比,它的查找和訪問元素的速度較快,但新增,刪除的速度較慢。線程不安全。如果你需要線程安全就使用Vector。
        
        HashMap:數據結構爲 數組+(鏈表或紅黑樹),它存儲的內容是鍵值對;允許使用null鍵和null值,因爲key不允許重複,因此只能有一個鍵爲null;HashMap是線程不安全的,無序;新增邏輯:第一步,計算出鍵的hashcode值,該值用來定位這個元素放在數組的位置。分爲兩種情況,數組索引的位置是空的,這種情況很簡單,直接將元素放進去就好了;第二種,不是空的,採用equals比較元素是否相同,如果相同直接覆蓋,如果不相同則在原元素下使用鏈表結構存儲該元素。因爲鏈表元素太多的時候會影響查找效率,所以當鏈表的元素個數達到8的時候就變成了紅黑樹;初始容量大小是創建時給數組分配的容量大小,默認值爲16,當存儲的元素個數大於數組容量數乘以加載因子得到的值時,數組就會擴容到原來的兩倍;加載因子默認0.75。HashMap不是線程安全的;多線程下重新調整HashMap大小的時候,存儲在鏈表中的元素的次序會反過來,如果條件競爭發生了,那麼就死循環了;不能在多線程下使用HashMap。
        
        線程安全的Map:HashTable,方法都被synchronized關鍵字修飾,效率非常低;SynchronizedMap,把傳入進行的HashMap對象進行了包裝同步而已;ConcurrentHashMap - 推薦,設計爲非阻塞,在更新時會局部鎖住某部分數據;好處是在保證合理的同步前提下,效率很高;壞處是嚴格來說讀取操作不能保證反映最近的更新.
        
    第五節    java基礎部分面試題
        
        
    
第二章  常用框架
第三章  數據庫
第四章  緩存
第五章  中間件
第六章  併發編程
第七章  各類問題以及解決方案

      

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章