![](http://static.javashuo.com/static/loading.gif)
前言
每一個大牛的誕生都是從菜鳥起步的,只是在成長的過程當中,他們爲本身設立了長期而鑑定的奮鬥目標,梳理了清晰而受用的知識架構。用這種知識框架去循序漸進地成長,每一個人都有成爲大牛的可能。本文就將展現一種知識體系的構建方法,但願可以對你有所幫助。java
筆者整理出一篇Java進階架構師之路的核心知識,同時也是面試時面試官必問的知識點,篇章也是包括了不少知識點,其中包括了有基礎知識、Java合集、JVM、多線程併發、Spring原理、微服務、Netty、Kafka、設計模式、算法、數據庫、Zookeeper、分佈式緩存、數據機構等等架構技術web
聲明:因爲PDF文檔裏的細節內容實在過多因此只編輯了部分知識點的章節粗略的介紹下,每一個章節小節點裏面都有更細化的內容!如下就是部分章節目錄,因爲頭條的篇幅限制目錄上的詳細講解也沒法一一列出,文末底下有獲取如下章節的全部詳細知識講解。
第一章:Java基本概念
- Java語言的優勢?
- 什麼是Java虛擬機?爲何Java被稱做是「平臺無關的編程語言」?
- Java和C++有何區別?
- JDK和JRE的區別是什麼?
- Java支持的數據類型有哪些?什麼是自動拆裝箱?
- 什麼是值傳遞和引用傳遞?
- 一個"java"源文件中是否能夠包括多個類(不是內部類) ?有什麼限制?
- 靜態變量和實例變量的區別?
- 不經過構造函數也能建立對象嗎?
- 靜態變星和實例變量的區別?
- 是否能夠從一個靜態( static )方法內部發出對非靜態( non-static )方法的調用?
- 如何實現對象克隆?
- 一個"java" 源文件中是否能夠包含多個類(不是內部類) ?有什麼限制?
- Anonymous Inner Class(匿名內部類)是否能夠繼承其它類?是否能夠實現接口?
- 內部類能夠引用它的包含類(外部類)的成員嗎?有沒有什麼限制?
- 列出本身經常使用的jdk包
- JDK, JRE和JVM的區別?
![](http://static.javashuo.com/static/loading.gif)
第二章:面向對象編程
- Java中的方法要蓋(Overriding)和方法重載(Overloading)是什麼意思?
- Overload和Override的區別? Overloaded 的方法是否能夠改變返回值的類型?
- Java中,什麼是構造函數?什麼是構造函數重載?什麼是複製構造函數?
- 構造器Constructor是否可被Override?
- Java支持多繼承麼?
- 接口和抽象類的區別是什麼?
- 下列說法正確的有( )
- Java接口的修飾符能夠爲?
- 下面是People和Child類的定義和構造方法,每一個構造方法都輸出編號。在執行new Child("mike")的時候都有哪些構造方法被順序調用?請選擇輸出結果
- 構造器( constructor )是否可被重寫( override ) ?
- 兩個對象值相同(x.equals(y) == true) ,但卻可有不一樣的hash code ,這句話對不對?
- 接口是否可繼承( extends )接口?抽象類是否可實現( implements )接口?抽象類是否可繼承具體類( concrete class ) ?
- 指出下面程序的運行結果:
- Class forName ( String className )這個方法的做用
- 什麼是AOP和OOP,IOC和DI有什麼不一樣?
- 判斷下列語句是否正確,若是有錯誤,請指出錯誤所在?
![](http://static.javashuo.com/static/loading.gif)
第三章:關鍵字
- " static" 關鍵字是什麼意思? Java中是否能夠要蓋(override) -個private或者是static的方法?
- 是否能夠在static環境中訪問非static變雖?
- 訪問修飾符public, private, protected,以及不寫(默認)時的區別?
- volatile關鍵字是否能保證線程安全?
- Java有沒有goto?
- Java中的final關鍵字有哪些用法?
- 何時用assert ?
- final, finally finalize的區別?
![](http://static.javashuo.com/static/loading.gif)
第四章:基本類型與運算
- 說說&和&&的區別。
- 用最有效率的方法算出2乘以8等於幾?
- 存在便i+ 1 <的數嗎?
- 0.6332的數據類型是( )
- System.out.println("5" + 2);的輸出結果應該是( )。
- 下面的方法,當輸入爲2的時候返回值是多少?
- float f=3.4;是否正確?
- int和Integer有什麼區別?
- char型變星中能不能存貯一箇中文漢字?爲何?
- Math.round(11 5)等於多少? Math.round(-11 5)等於多少?
![](http://static.javashuo.com/static/loading.gif)
筆者限於篇幅,細節內容實在太多啦,因此只把部分知識點截圖出來粗略的介紹,每一個小節點裏面都有更細化的內容!有須要的程序猿(媛)自行點擊下方傳送門,免費領取面試
第五章:字符串與數組
- 下面程序的運行結果是( )
- 下面代碼的運行結果爲?
- String是最基本的數據類型嗎?
- 數組有沒有length0方法? String有沒有length0方法?
- 是否能夠繼承String類?
- String和StringBuilder, StringBuffer 的區別?
- String s=new String( "xyz」):建立了幾個字符串對象?
- 將字符「12345" 轉換成long型
- 爲了顯示myStr= 23這樣的結果,寫出在控制檯輸入的命令
- Strings = "Hello";s =s +」world!" ;這兩行代碼執行後,原始的String對象中的內容到底變了沒有?
- 如何把一段逗號分割的字符串轉換成一個數組?
- 下面這條語句一共建立了多少個對象: Strings= "a」+」b」+」c」+」d」;
- String和StringBuffer的區別?
- String, StringBuffer StringBuilder的區別。
![](http://static.javashuo.com/static/loading.gif)
第六章:輸入輸出流
- 下面哪一個流類屬於面向字符的輸入流?
- 閱讀Shape和Circle兩個類的定義。在序列化一個Circle的對象circle到文件時,下面哪一個字段會被保存到文件中?
- 什麼是Java序列化,如何實現Java序列化?
![](http://static.javashuo.com/static/loading.gif)
第七章:集合類
- 下列說法正確的是( )
- ArrayList list = new ArrayList(20);中的list 擴充幾回?
- Java焦臺類框架的基本接口有哪些?
- 爲何集合類沒有實現Cloneable和Serializable接口?
- 什麼是迭代器(terator) ?
- Iterator和ListIterator的區別是什麼?
- 快速失敗(fail-fast)和安全失敗(fail-safe)的區別是什麼?
- Java中的HashMap的工做原理是什麼?
- hashCode0和equals0方法的重要性體如今什麼地方?
- HashMap和Hashtable有什麼區別?
- 數組(Array)和列表(ArrayList)有什麼區別?何時應該使用Array而不是ArrayList ?
- ArrayList和LinkedList有什麼區別?
- Comparable和Comparator接口是幹什麼的?列出它們的區別。
- Java集合類框架的最佳實踐有哪些?
- Enumeration接口和Iterator接口的區別有哪些?
- HashSet和TreeSet有什麼區別?
- List. Set. Map是否繼承自Collection 接口?
- 說出ArrayList. Vector. LinkedList 的存儲性能和特性?
- List. Map. Set 三個接口存儲元素時各有什麼特色?
- 判斷下列語句是否正確,若是有錯誤,請指出錯誤所在?
- 你是怎麼理解Java泛型的?
![](http://static.javashuo.com/static/loading.gif)
第八章:Java平臺與內存管理
- GC線程是否爲守護線程? ( )
- 解釋內存中的棧( stack)、堆(heap)和靜態存儲區的用法。
- Java中會存在內存泄漏嗎,請簡單描述。
- GC是什麼?爲何要有GC?
- 第3行中生成的object在第幾行執行後成爲garbage collection 的對象?
- 描述一下JVM加載class文件的原理機制?
![](http://static.javashuo.com/static/loading.gif)
第九章:異常處理
- 下面關於java.lang.Exception類的說法正確的是( )
- 擴展:錯誤和異常的區別(Error vs Exception)
- getCustomerInfo0方法以下, try中能夠捕獲三種類型的異常, 若是在該方法運行中產性了一個IOException ,將會輸出什麼結果?
- try0裏有一個return語句,那麼緊跟在這個try後的fnally0裏的code會不會被執行,何時被執行,在return前仍是後?
- Java語言如何進行異常處理,關鍵字: throws. throw. try. catch. finally 分別如何使用?
- 運行時異常與受檢異常有何異同?
- 請寫出5種常見到的runtime exception。
- error和exception有什麼區別?
![](http://static.javashuo.com/static/loading.gif)
筆者限於篇幅,細節內容實在太多啦,因此只把部分知識點截圖出來粗略的介紹,每一個小節點裏面都有更細化的內容!有須要的程序猿(媛)自行點擊下方傳送門,免費領取算法
第十章:
- XML包括哪些解釋技術,區別是什麼?
- XML文檔定義有幾種形式?它們之間有何本質區別?解析XML文檔有哪幾種方式?
- 你在項目中哪些地方用到了XML?
- 談談對XML的理解?說明Web應用中Web.xml文件的做用?
- XML是種元語言, 能夠用它來描述其餘語言。
- 在XML中用於註釋的符號是。(選擇1項)
- DTD與XML Schema都是XML文檔。(選擇1項)
![](http://static.javashuo.com/static/loading.gif)
第十一章:Java多線程
- 下面哪些是Thread類的方法?
- 下面程序的運行結果?
- 進程和線程的區別是什麼?
- 建立線程有幾種不一樣的方式?你喜歡哪-種?爲何?
- 歸納的解釋下線程的幾種可用狀態。
- 同步方法和同步代碼塊的區別是什麼?
- 在監視器(Monitor)內部,是如何作線程同步的?程序應該作哪一種級別的同步?
- 什麼是死鎖(deadlock) ?
- 如何確保N個線程能夠訪問N個資源同時又不致使死鎖?
- sleep0和wait0有什麼區別?
- sleep0和yield0有什麼區別?
- 當一個線程進入一個對象的synchronized方法A以後,其它線程是否可進入此對象的synchronized方法?
- 請說出與線程同步相關的方法。
- synchronized關鍵字的用法?
- 舉例說明同步和異步。
- 啓動一個線程是用run0仍是start0方法?
- 什麼是線程池( thread pool) ?
- 線程的基本狀態以及狀態之間的關係?
- 死鎖的必要條件?怎麼克服?
![](http://static.javashuo.com/static/loading.gif)
第十二章:JDBC與數據庫
- 下列屬於關係型數據庫的是( )
- 在進行數據庫編程時,鏈接池有什麼做用?
- 什麼是DAO模式?
- 什麼是ORM ?
- JDBC中如何進行事務處理?
- 事務的ACID是指什麼?
- 使用JDBC操做數據庫時,如何提高讀取數據的性能?如何提高更新數據的性能?
- 存儲過程和函數的區別
- 你認爲在表上創建索引能夠提升數據庫系統的效率嗎,爲何?
- 什麼是數據庫的參照完整性?
- 如何優化數據庫,如何提升數據庫的性能?
![](http://static.javashuo.com/static/loading.gif)
第十三章:Servlet與JSP
- JSP有哪些內置對象和動做?它們的做用分別是什麼?
- 描述JSP和Servlet的區別、共同點各自應用的範圍
- 從如下哪個選項中能夠得到Servlet的初始化參數?
- 哪個對象能夠用於得到瀏覽器發送的請求?
- 運行jsp須要安裝__Web服務器。
- 在服務器的網絡編程中,解決會話跟蹤的方法有:
- 與HttpSessionListener接有關的方法是。
- 關於JSP生命週期的敘述,下列哪些爲真?
- 如下聲明正確的是?
- 下列哪一個爲JSP的隱含對象?
- 下面的那一個不屬於MVC模式中的對象?
- 在Servlet處理請求的方式爲。(選擇1項)
- javax.Servlet的包中,屬於類的是。(選擇1項)
- Http缺首的請求方法是。(選擇1項)
- 實現現下列哪種接口的對象,並不須要在web.xml文件內進行額外的設定, Servlet容器就可以迴應該對象加入HTTP會話所發生的事件? (選擇1項)
- 下列哪一個爲JSP的小腳本的標籤? (選擇1項)
- 如下不屬於JSP的標準指令的是。(選擇1項)
- 對於每-個網站訪問用戶都要訪問的變量,應該將它設爲____變星。 (選擇1項)
- 查丟下列JSP內容
- 假設Ajsp內設定一個<jsp:useBean> 元索:
- 在MVC設計模式中, JavaBean的做用是。(選擇1項
![](http://static.javashuo.com/static/loading.gif)
第十四章:J2EE與EJB
- J2EE是什麼?它包括哪些技術?
- 描述J2EE框架的多層結構,並簡要說明各層的做用。
- EJB包含哪3種bean
- Tomcat服務器的默認端1是多少?怎樣修改tomcat的端口?
- EJB的優勢有哪些? (選擇2項)
- 無狀態會話Bean.有狀態會話Bean. CMP與BMP中,哪種Bean不須要本身書寫鏈接數據庫的代碼?
- 假設web應用的文檔根目錄爲MyApp ,那麼能夠從哪裏找到database.jar文件。
- 要建立一個EJB ,必需要至少編寫哪些Java類和接口?
- EJB類庫存在於Java的哪一個版本中? (選擇1項)。
- 在J2EE中屬於Web層的組件有(選擇1項)
- EJB的角色和三個對象
- EJB的激活機制
- EJB的幾種類型
![](http://static.javashuo.com/static/loading.gif)
筆者限於篇幅,細節內容實在太多啦,因此只把部分知識點截圖出來粗略的介紹,每一個小節點裏面都有更細化的內容!有須要的程序猿(媛)自行點擊下方傳送門,免費領取spring
第十五章:SSH架構
- 描述Struts體系結構?對應各個部分的開發工做主要包括哪些?
- 簡要描述如何結合struts. hibernate. spring 開發Web應用?
- 說明反轉控制( IOC )和麪向方向編程( AOP )在spring中的應用
- 簡述基於Struts框架Web應用的工做流程
- 在項目中用過Spring的哪些方面?及用過哪些Ajax框架?
- MVC模式中M,V , C每一個表明意義,並簡述在Struts中MVC的表現方式。
- Hibernate中的Java對象有幾種狀態,其相互關係如何(區別和相互轉換)。
- 對Hibernate的延遲加載如何理解,在實際應用中,延遲加載與session關閉的矛盾是如何處理的?
- Struts1中actionform和action屬於MVC哪一層,爲何?
- struts2 中, Action經過什麼方式得到用戶從頁面輸入的數據,又是經過什麼方式把其自身的數據傳給視圖的?
- 說明什麼是工廠模式?
- struts 中如何實現國際化,涉及哪些文件?
- Struts框架能夠支持如下哪一種程序開發語言? (選擇1項)
- struts是什麼?
- spring是什麼?
- hibernate是什麼?
- 用本身的話簡要闡述struts2的執行流程
![](http://static.javashuo.com/static/loading.gif)
第十六章:NML
- UML是什麼? UML中有哪些圖?
- 類圖用來表示系統中類和類與類之間的關係,它是對系統動態結構的描述。(選擇1項)
第十七章:常見設計模式
- 寫一個單例類。
- 說說你所熟惡或據說過的設計模式以及你對設計模式的見解。
- 你在開發中都用到了那些設計模式?用在什麼場合?
- 編程題:寫一個Singleton出來
寫在最後
筆者限於篇幅,細節內容實在太多啦,因此只把部分知識點截圖出來粗略的介紹,每一個小節點裏面都有更細化的內容!有須要的程序猿(媛)自行點擊下方傳送門,免費領取數據庫
![](http://static.javashuo.com/static/loading.gif)