最近因為一個朋友想要學習Java,在幫助他找教程的過程中回想到了我自己當年學習Java的那段歲月,故寫了此篇文章總結了一下初學Java所必須要掌握的知識點,然後把一部分常見的面試題羅列出來。給予剛剛開始學習Java的同學做一個參考。
程式語言簡史
最初由0,1組成的機器語言變成了簡單指令的組合語言,最後才是高階語言。而高階語言又分為程式導向語言與面嚮物件語言兩種。而Java就是典型的面嚮物件語言。
question:
你知道哪些高階語言?
他們分別是程式導向還是物件導向呢?
程式的工作原理
因為計算機只認識機器語言,所以我們寫出的程式碼想要被計算機執行必須有一個轉換的過程。這個轉換的過程分為兩種:編譯執行,解釋執行。
question:
你知道什麼是編譯執行和解釋執行麼?
你知道他們各自的好處麼?
你知道Java是如何執行的麼?
初識Java
Java語言的發展歷程、Java這個名字的來歷、J2EE、J2SE、J2ME。還有最經典的一句話:Compile once and run everywhere
question:
你知道J2EE、J2SE、J2ME分別適用於什麼場景麼?
為什麼Java可以一次編譯到處執行呢?
Java語言的特性都是有什麼?
HelloWord
JDK的下載和安裝,環境變數的配置,HelloWord程式碼,javac、java命令,Java程式的基本結構
|
|
question:
你知道JDK每個資料夾的作用是什麼嗎?
jdk和jre的區別是什麼?
public static void main(String[] args)每個關鍵字是什麼意思?
資料型別
常量、變數、識別符號、資料型別、保留字、溢位、命名規則、變數型別轉換
question
8大基本資料型別都有什麼?
8大基本型別的數值範圍是什麼?
8大基本型別所佔的記憶體空間分別是多少?
什麼是強制型別轉換和自動轉換?
運算子
算術運算子、邏輯運算子、關係運算子、遞增遞減運算子、三目運算子、運算子的順序
question:
多級運算子組合使用計算結果你會了麼?
++i和i++的區別是什麼?
條件判斷
if、else if、else、switch、case、continue、break、label
question:
continue和break的作用是什麼?
if後面不加括號的話會如何?
switch都是支援什麼資料型別?
迴圈
do-while、while、for、巢狀迴圈
question:
do-while和while的區別是什麼?
陣列
一維陣列、二維陣列、陣列下標、陣列下標越界
question:
陣列的下標從什麼開始的?
什麼情況下會引起陣列下標越界?
物件導向
類的概念、物件的概念、類的成員變數和方法、static關鍵字、建立使用清除物件、構造
方法、過載、方法呼叫引數和返回值、訪問控制符、內部類
question:
一個方法是void表示什麼?
Java方法中引數傳遞是值傳遞還是引用傳遞?
static變數和方法是什麼時候初始化的?
訪問修飾符都是有哪些?
怎麼樣進行方法過載?
深入物件導向
繼承、重寫、抽象類、多型、this關鍵字、super關鍵字、物件的轉型、介面
question:
過載和重寫的區別是什麼?
抽象類和介面的區別是什麼?
一個類可以繼承多個類麼?
子類會繼承父類所有的成員變數和方法麼?
物件導向的三大特徵是什麼?
異常
異常的層次結構、異常處理過程、Error和Exception、try-catch-finally、throw、throws
question:
常見的異常都有什麼?
異常流程中包含多個return時的程式處理流程
Error和Exception的區別是什麼?
throw和throws的區別是什麼?
流
InputStream、OutputStream、FileInputStream、FileOutputStream、File、FileReader 、FileWriter
question:
位元組流和字元流的區別?
什麼是序列化?
如何實現序列化?
多執行緒
Thread、Runnable 、start、run、主執行緒、系統執行緒、使用者執行緒、執行緒的生命、週期、優先順序
question:
位元組流和字元流的區別?
什麼是序列化?
如何實現序列化?
jdbc
mysql的安裝、mysql基礎命令、jdbc基本API
question:
jdbc的操作步驟是什麼?
相對於Statement,PreparedStatement的優點是什麼?
以上所有內容僅僅是學習Java的最最基礎的知識,如果你是Java初學者,當你完成了以上內容的學習的時候請你保持自我繼續堅持下去,因為後面還有很多知識在等待著你。例如:jsp、servlet、SSM框架、Linux基礎等等。