阿里P8耗時九個月整理的Java面試核心筆記,終於來了

yunduo1發表於2020-12-22

第 1 章 Java 基本概念

  1. Java 語言的優點?
  2. 什麼是 Java 虛擬機器?為什麼 Java 被稱作是“平臺無關的程式語言”?
  3. Java 和 C++ 有何區別?
  4. JDK 和 JRE 的區別是什麼?
  5. Java 支援的資料型別有哪些?什麼是自動拆裝箱?
  6. 什麼是值傳遞和引用傳遞?
  7. 一個 ".java" 原始檔中是否可以包括多個類(不是內部類)?有什麼限制?
  8. 靜態變數和例項變數的區別?
  9. 不通過建構函式也能建立物件嗎?
  10. 靜態變數和例項變數的區別?
  11. 是否可以從一個靜態(static)方法內部發出對非靜態(non-static)方法的呼叫?
  12. 如何實現物件克隆?
  13. 一個“.java”原始檔中是否可以包含多個類(不是內部類)?有什麼限制?
  14. Anonymous Inner Class(匿名內部類)是否可以繼承其它類?是否可以實現介面?
  15. 內部類可以引用它的包含類(外部類)的成員嗎?有沒有什麼限制?
  16. 列出自己常用的 jdk 包
  17. JDK, JRE 和 JVM 的區別?

第 2 章 物件導向程式設計

  1. Java 中的方法覆蓋 (Overriding) 和方法過載 (Overloading) 是什麼意思?
  2. Overload 和 Override 的區別? Overloaded 的方法是否可以改變返回值的型別?
  3. Java 中,什麼是建構函式?什麼是建構函式過載?什麼是複製建構函式?
  4. 構造器 Constructor 是否可被 Override?
  5. Java 支援多繼承麼?
  6. 介面和抽象類的區別是什麼?
  7. 下列說法正確的有()
  8. Java 介面的修飾符可以為?
  9. 下面是 People 和 Child 類的定義和構造方法,每個構造方法都輸出編號。在執行 new Chil d("mike") 的時候都有哪些構造方法被順序呼叫?請選擇輸出結果
  10. 構造器(constructor)是否可被重寫(override)?
  11. 兩個物件值相同(x.equals(y) == true),但卻可有不同的 hash code,這句話對不對?
  12. 介面是否可繼承(extends)介面? 抽象類是否可實現(implements)介面? 抽象類是否可繼 承具體類(concrete class)?
  13. 指出下面程式的執行結果:
  14. Class.forName(String className)這個方法的作用
  15. 什麼是 AOP 和 OOP,IOC 和 DI 有什麼不同?
  16. 判斷下列語句是否正確,如果有錯誤,請指出錯誤所在?

第 3 章 關鍵字

  1. ”static” 關鍵字是什麼意思?Java 中是否可以覆蓋(override) 一個 private 或者是 static 的 方法?
  2. 是否可以在 static 環境中訪問非 static 變數?
  3. 訪問修飾符 public, private, protected, 以及不寫(預設)時的區別?
  4. volatile關鍵字是否能保證執行緒安全?
  5. Java 有沒有 goto?
  6. Java 中的 final關鍵字有哪些用法?
  7. 什麼時候用 assert?
  8. final, finally, finalize 的區別?

第 4 章 基本型別與運算

  1. 說說 & 和 && 的區別。
  2. 用最有效率的方法算出 2 乘以 8 等於幾?
  3. 存在使 i + 1 < i的數嗎?
  4. 0.6332 的資料型別是()
  5. System.out.println("5" + 2);的輸出結果應該是()
  6. 下面的方法,當輸入為 2 的時候返回值是多少?
  7. float f=3.4;是否正確?
  8. int 和 Integer 有什麼區別?
  9. char 型變數中能不能存貯一箇中文漢字?為什麼?
  10. Math.round(11.5) 等於多少? Math.round(-11.5)等於多少?

第 5 章 字串與陣列

  1. 下面程式的執行結果是()
  2. 下面程式碼的執行結果為?
  3. String 是最基本的資料型別嗎?
  4. 陣列有沒有 length() 方法? String 有沒有 length() 方法?
  5. 是否可以繼承 String 類?
  6. String 和StringBuilder、StringBuffer 的區別?
  7. String s=new String(“xyz”);建立了幾個字串物件?
  8. 將字元 “12345” 轉換成 long 型
  9. 為了顯示 myStr = 23 這樣的結果,寫出在控制檯輸入的命令
  10. String s = "Hello";s = s + " world!”; 這兩行程式碼執行後,原始的 String 物件中的內容到底變 了沒有?
  11. 如何把一段逗號分割的字串轉換成一個陣列?
  12. 下面這條語句一共建立了多少個物件: String s=“a”+”b”+”c”+”d”;
  13. String 和 StringBuffer 的區別?
  14. String, StringBuffer StringBuilder的區別。

第 6 章 輸入輸出流

  1. 下面哪個流類屬於面向字元的輸入流?
  2. 閱讀 Shape 和 Circle 兩個類的定義。在序列化一個 Circle 的物件 circle 到檔案時,下面哪個 欄位會被儲存到檔案中?
  3. 什麼是 Java 序列化,如何實現 Java 序列化?

第 7 章 集合類

  1. 下列說法正確的是()
  2. ArrayList list = new ArrayList(20);中的 list 擴充幾次?
  3. Java集合類框架的基本介面有哪些?
  4. 為什麼集合類沒有實現 Cloneable 和 Serializable 介面?
  5. 什麼是迭代器(Iterator)?
  6. Iterator和ListIterator的區別是什麼?
  7. 快速失敗(fail-fast)和安全失敗(fail-safe)的區別是什麼?
  8. Java 中的 HashMap 的工作原理是什麼?
  9. hashCode() 和 equals() 方法的重要性體現在什麼地方?
  10. HashMap 和 Hashtable 有什麼區別?
  11. 陣列(Array)和列表(ArrayList)有什麼區別?什麼時候應該使用 Array 而不是 ArrayList?
  12. ArrayList 和 LinkedList 有什麼區別?
  13. Comparable 和Comparator 介面是幹什麼的?列出它們的區別。
  14. Java集合類框架的最佳實踐有哪些?
  15. Enumeration 介面和 Iterator 介面的區別有哪些?
  16. HashSet 和 TreeSet 有什麼區別?
  17. List、Set、Map 是否繼承自 Collection 介面?
  18. 說出 ArrayList、Vector、LinkedList 的儲存效能和特性?
  19. List、Map、Set 三個介面儲存元素時各有什麼特點?
  20. 判斷下列語句是否正確,如果有錯誤,請指出錯誤所在?
  21. 你是怎麼理解 Java 泛型的?

第 8 章 Java 平臺與記憶體管理

  1. GC執行緒是否為守護執行緒?()
  2. 解釋記憶體中的棧(stack)、堆(heap)和靜態儲存區的用法。
  3. Java 中會存在記憶體洩漏嗎,請簡單描述。
  4. GC 是什麼?為什麼要有 GC?
  5. 第 3 行中生成的 object在第幾行執行後成為 garbage collection 的物件?
  6. 描述一下 JVM 載入 class 檔案的原理機制?

第 9 章 異常處理

  1. 下面關於java.lang.Exception類的說法正確的是()
  2. 擴充套件:錯誤和異常的區別(Error vs Exception)
  3. getCustomerInfo() 方法如下,try 中可以捕獲三種型別的異常,如果在該方法執行中產生了一 個 IOException,將會輸出什麼結果?
  4. try{} 裡有一個 return 語句,那麼緊跟在這個 try 後的 finally{} 裡的 code 會不會被執行,什麼 時候被執行,在 return 前還是後?
  5. Java 語言如何進行異常處理,關鍵字:throws、throw、try、catch、finally 分別如何使
    用?
  6. 執行時異常與受檢異常有何異同?
  7. 請寫出 5 種常見到的runtime exception。
  8. error 和 exception 有什麼區別?

第 10 章 XML

  1. XML 包括哪些解釋技術,區別是什麼?
  2. XML 文件定義有幾種形式?它們之間有何本質區別?解析XML 文件有哪幾種方式?
  3. 你在專案中哪些地方用到了 XML?
  4. 談談對 XML 的理解?說明 Web 應用中 Web.xml 檔案的作用?
  5. XML 是一種元語言, 可以用它來描述其他語言。
  6. 在 XML 中用於註釋的符號是。(選擇1項)
  7. DTD 與 XML Schema 都是XML文件。(選擇1項)

第 11 章 Java 多執行緒

  1. 下面哪些是Thread類的方法?
  2. 下面程式的執行結果?
  3. 程式和執行緒的區別是什麼?
  4. 建立執行緒有幾種不同的方式?你喜歡哪一種?為什麼?
  5. 概括的解釋下執行緒的幾種可用狀態。
  6. 同步方法和同步程式碼塊的區別是什麼?
  7. 在監視器(Monitor)內部,是如何做執行緒同步的?程式應該做哪種級別的同步?
  8. 什麼是死鎖(deadlock)?
  9. 如何確保 N 個執行緒可以訪問 N 個資源同時又不導致死鎖?
  10. sleep() 和 wait() 有什麼區別?
  11. sleep() 和 yield() 有什麼區別?
  12. 當一個執行緒進入一個物件的 synchronized 方法 A 之後,其它執行緒是否可進入此物件的 synch ronized 方法?
  13. 請說出與執行緒同步相關的方法。
  14. synchronized 關鍵字的用法?
  15. 舉例說明同步和非同步。
  16. 啟動一個執行緒是用 run() 還是 start() 方法?
  17. 什麼是執行緒池(thread pool)?
  18. 執行緒的基本狀態以及狀態之間的關係?
  19. 死鎖的必要條件?怎麼克服?

第 12 章 JDBC 與資料庫

  1. 下列屬於關係型資料庫的是()
  2. 在進行資料庫程式設計時,連線池有什麼作用?
  3. 什麼是 DAO 模式?
  4. 什麼是ORM?
  5. JDBC 中如何進行事務處理?
  6. 事務的 ACID 是指什麼?
  7. 使用 JDBC 運算元據庫時,如何提升讀取資料的效能?如何提升更新資料的效能?
  8. 儲存過程和函式的區別
  9. 你認為在表上建立索引可以提高資料庫系統的效率嗎,為什麼?
  10. 什麼是資料庫的參照完整性?
  11. 如何優化資料庫,如何提高資料庫的效能?

第 13 章 Servlet 與 JSP

  1. JSP 有哪些內建物件和動作?它們的作用分別是什麼?
  2. 描述 JSP 和 Servlet 的區別、共同點、各自應用的範圍
  3. 從以下哪一個選項中可以獲得 Servlet的 初始化引數?
  4. 哪一個物件可以用於獲得瀏覽器傳送的請求?
  5. 執行 jsp 需要安裝_______Web 伺服器。
  6. 在伺服器的網路程式設計中,解決會話跟蹤的方法有
  7. 與 HttpSessionListener 介面有關的方法是
  8. 關於 JSP 生命週期的敘述,下列哪些為真?
  9. 以下宣告正確的是?
  10. 下列哪個為 JSP 的隱含物件?
  11. 下面的那一個不屬於 MVC 模式中的物件?
  12. 在 Servlet 處理請求的方式為。(選擇1項)
  13. javax.Servlet 的包中,屬於類的是。(選擇1項)
  14. Http 預設的請求方法是。(選擇1項)
  15. 實現現下列哪一種介面的物件,並不需要在 web.xml 檔案內進行額外的設定,Servlet 容器就 能夠回應該物件加入 HTTP 會話所發生的事件?(選擇1項)
  16. 下列哪個為 JSP 的小指令碼的標籤?(選擇1項)
  17. 以下不屬於 JSP 的標準指令的是。(選擇1項)
  18. 對於每一個網站訪問使用者都要訪問的變數,應該將它設為________變數。(選擇1項)
  19. 檢視下列 JSP 內容
  20. 假設 A.jsp 內設定一個 <jsp:useBean> 元素:
  21. 在 MVC 設計模式中,JavaBean的 作用是。(選擇1項)

第 14 章 J2EE 與 EJB

  1. J2EE 是什麼?它包括哪些技術?
  2. 描述 J2EE 框架的多層結構,並簡要說明各層的作用。
  3. EJB 包含哪 3 種 bean
  4. Tomcat 伺服器的預設埠是多少?怎樣修改 tomcat 的埠?
  5. EJB的優點有哪些?(選擇 2 項)
  6. 無狀態會話 Bean、有狀態會話 Bean、CMP 與 BMP 中,哪一種 Bean 不需要自己書寫連線 資料庫的程式碼?
  7. 假設 web 應用的文件根目錄為 MyApp,那麼可以從哪裡找到 database.jar 檔案
    8.要建立一個 EJB,必須要至少編寫哪些 Java 類和介面?
  8. EJB 類庫存在於 Java 的哪個版本中?(選擇1項)。
  9. 在 J2EE 中屬於 Web 層的元件有(選擇1項)
  10. EJB 的角色和三個物件
  11. EJB 的啟用機制
  12. EJB 的幾種型別

第 15 章 SSH 架構

  1. 描述 Struts 體系結構?對應各個部分的開發工作主要包括哪些?
  2. 簡要描述如何結合 struts、hibernate、spring 開發 Web 應用?
  3. 說明反轉控制(IOC)和麵向方向程式設計(AOP)在 spring 中的應用
  4. 簡述基於 Struts 框架 Web 應用的工作流程
  5. 在專案中用過 Spring的 哪些方面?及用過哪些 Ajax 框架?
  6. MVC 模式中 M,V,C 每個代表意義,並簡述在 Struts 中 MVC 的表現方式。
  7. Hibernate 中的 Java物件有幾種狀態,其相互關係如何(區別和相互轉換)。
  8. 對 Hibernate 的延遲載入如何理解,在實際應用中,延遲載入與 session 關閉的矛盾是如何處 理的?
  9. Struts1 中 actionform 和 action 屬於 MVC 哪一層,為什麼?
  10. struts2 中,Action 通過什麼方式獲得使用者從頁面輸入的資料,又是通過什麼方式把其自身的 資料傳給檢視的?
  11. 說明什麼是工廠模式?
  12. struts 中如何實現國際化,涉及哪些檔案?
  13. Struts 框架可以支援以下哪種程式開發語言?(選擇1項)
  14. struts 是什麼?
  15. spring 是什麼?
  16. hibernate 是什麼?
  17. 用自己的話簡要闡述 struts2 的執行流程

第 16 章 UML

  1. UML是什麼?UML中有哪些圖?
  2. 類圖用來表示系統中類和類與類之間的關係,它是對系統動態結構的描述。(選擇1項)

第 17 章 常見設計模式

  1. 寫一個單例類。
  2. 說說你所熟悉或聽說過的設計模式以及你對設計模式的看法。
  3. 你在開發中都用到了那些設計模式?用在什麼場合?
  4. 程式設計題: 寫一個Singleton出來

寫在最後

Java面試寶典已經整理完畢,共231頁,收集一百九十多道面試題。包含了

  • Java 基本概念
  • 物件導向程式設計
  • 關鍵字
  • 基本型別與運算
  • 字串與陣列
  • 輸入輸出流
  • 集合類
  • Java 平臺與記憶體管理
  • 異常處理
  • XML
  • Java 多執行緒
  • JDBC 與資料庫
  • Servlet 與 JSP
  • J2EE 與 EJB
  • SSH 架構
  • UML
  • 常見設計模式

等知識點,現將其免費分享給大家!

需要的朋友幫忙轉發一下,關注後新增助理vx:yunduoa2019或掃描下圖二維碼,跟隨助理指引自行獲取

 

以下是文章中的部分截圖

幫忙轉發一下,關注後新增助理vx:yunduoa2019或掃描下圖二維碼,跟隨助理指引自行獲取

相關文章