更新時間:2020-06-10 14:50:43 來源:動力節(jié)點 瀏覽2477次
紙上得來終覺淺,絕知此事要躬行。小編之前對每部分的內(nèi)容對做了比較深入的學習以及代碼實現(xiàn),基本上比較全面地講述了每一個Java基礎知識點,當然可能有些遺漏和錯誤,歡迎讀者指正。
這里把重要的面試知識點都寫出來了,讓大家對知識框架有個基本輪廓。
Java基礎學習總結(jié)
每部分內(nèi)容會重點寫一些常見知識點,方便復習和記憶,但是并不是全部內(nèi)容,詳細的內(nèi)容請參見具體的文章地址。
面向?qū)ο笕筇匦?/strong>
繼承:一般類只能單繼承,內(nèi)部類實現(xiàn)多繼承,接口可以多繼承封裝:訪問權(quán)限控制public>protected>包>private內(nèi)部類也是一種封裝多態(tài):編譯時多態(tài),體現(xiàn)在向上轉(zhuǎn)型和向下轉(zhuǎn)型,通過引用類型判斷調(diào)用哪個方法(靜態(tài)分派)。運行時多態(tài),體現(xiàn)在同名函數(shù)通過不同參數(shù)實現(xiàn)多種方法(動態(tài)分派)。
基本數(shù)據(jù)類型
1基本類型位數(shù),自動裝箱,常量池2例如byte類型是1byte也就是8位,可以表示的數(shù)字是-128到127,因為還有一個0,加起來一共是256,也就是2的八次方。32位和64位機器的int是4個字節(jié)也就是32位,char是1個字節(jié)就是8位,float是4個字節(jié),double是8個字節(jié),long是8個字節(jié)。3基本數(shù)據(jù)類型的包裝類只在數(shù)字范圍-128到127中用到常量池,會自動拆箱裝箱,其余數(shù)字范圍的包裝類則會新建實例
String及包裝類
1 String類型是final類型,在堆中分配空間后內(nèi)存地址不可變。2底層是final修飾的char[]數(shù)組,數(shù)組的內(nèi)存地址同樣不可變。但實際上可以通過修改char[n]='a'來進行修改,不會改變String實例的內(nèi)存值,不過在jdk中,用戶無法直接獲取char[],也沒有方法能操作該數(shù)組。所以String類型的不可變實際上也是理論上的不可變。所以我們在分配String對象以后,如果將其="abc",那也只是改變了引用的指向,實際上沒有改變原來的對象。3 StringBuffer和StringBuilder底層是可變的char[]數(shù)組,繼承父類AbstractStringBuilder的各種成員和方法,實際上的操作都是由父類方法來完成的。
1 final修飾基本數(shù)據(jù)類型保證不可變2 final修飾引用保證引用不能指向別的對象,否則會報錯。3 final修飾類,類的實例分配空間后地址不可變,子類不能重寫所有父類方法。因此在cglib動態(tài)代理中,不能為一個類的final修飾的函數(shù)做代理,因為cglib要將被代理的類設置為父類,然后再生成字節(jié)碼。final修飾方法,子類不能重寫該方法。
抽象類和接口
1抽象類可以有方法實現(xiàn)。抽象類可以有非final成員變量。抽象方法要用abstract修飾。抽象類可以有構(gòu)造方法,但是只能由子類進行實例化。2接口可以用extends加多個接口實現(xiàn)多繼承。接口只能有public final類型的成員變量。接口只能有抽象方法,不能有方法體、接口不能實例化,但是可以作為引用類型。
代碼塊和加載順序
假設該類是第一次進行實例化。那么有如下加載順序靜態(tài)總是比非靜態(tài)優(yōu)先,從早到晚的順序是:1靜態(tài)代碼塊和靜態(tài)成員變量的順序根據(jù)代碼位置前后來決定。2代碼塊和成員變量的順序也根據(jù)代碼位置來決定3最后才調(diào)用構(gòu)造方法構(gòu)造方法
包、內(nèi)部類、外部類
1 Java項目一般從src目錄開始有com...A.java這樣的目錄結(jié)構(gòu)。這就是包結(jié)構(gòu)。所以一般編譯后的結(jié)構(gòu)是跟包結(jié)構(gòu)一模一樣的,這樣的結(jié)構(gòu)保證了import時能找到正確的class引用包訪問權(quán)限就是指同包下的類可見。import一般加上全路徑,并且使用.*時只包含當前目錄的所有類文件,不包括子目錄。2外部類只有public和default兩種修飾,要么全局可訪問,要么包內(nèi)可訪問。3內(nèi)部類可以有全部訪問權(quán)限,因為它的概念就是一個成員變量,所以訪問權(quán)限設置與一般的成員變量相同。非靜態(tài)內(nèi)部類是外部類的一個成員變量,只跟外部類的實例有關。靜態(tài)內(nèi)部類是獨立于外部類存在的一個類,與外部類實例無關,可以通過外部類.內(nèi)部類直接獲取Class類型。
異常
1異常體系的最上層是Throwable類子類有Error和Exception Exception的子類又有RuntimeException和其他具體的可檢查異常。2 Error是jvm完全無法處理的系統(tǒng)錯誤,只能終止運行。運行時異常指的是編譯正確但運行錯誤的異常,如數(shù)組越界異常,一般是人為失誤導致的,這種異常不用try catch,而是需要程序員自己檢查。可檢查異常一般是jvm處理不了的一些異常,但是又經(jīng)常會發(fā)生,比如Ioexception,Sqlexception等,是外部實現(xiàn)帶來的異常。3多線程的異常流程是獨立的,互不影響。大型模塊的子模塊異常一般需要重新封裝成外部異常再次拋出,否則只能看到最外層異常信息,難以進行調(diào)試。日志框架是異常報告的最好幫手,log4j,slf4j中,在工作中必不可少。
1 Java中的泛型是偽泛型,只在編譯期生效,運行期自動進行泛型擦除,將泛型替換為實際上傳入的類型。泛型類用classA{}2這樣的形式表示,里面的方法和成員變量都可以用T來表示類型。泛型接口也是類似的,不過泛型類實現(xiàn)泛型接口時可以選擇注入實際類型或者是繼續(xù)使用泛型。3泛型方法可以自帶泛型比如void<E>go();泛型可以使用?通配符進行泛化Object可以接受任何類型也可以使用這種方式進行上下邊界的限制。
Java相關學習資料
Java視頻教程:http://m.dabaquan.cn/javavideo.html
Java在線學習:http://m.dabaquan.cn/tutorial/
Java學習路線:http://m.dabaquan.cn/study.html
以上就是動力節(jié)點java培訓機構(gòu)的小編針對“Java學習資料整理下載,知識點總結(jié)”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。