1-3年Java面試大綱

此文的目的是爲了督促自己去學習,讓自己有更明確的方向去提升自己。已面試要點爲大綱,我覺得比抓住什麼看什麼要更有目的,更能堅持下去。世界瞬息萬變,我們要時刻準備着、時刻提高着自己,才能使自己更具有競爭力。

1 Java 基礎

1.1 Java 基礎語法

  • 面向對象的特徵
  • java 中四種修飾符的限制範圍
  • 重載和重寫的區別
  • 抽象類和接口有什麼區別
  • Java 基本數據類型
  • int 和 Integer 有什麼區別
  • 說說&和&&的區別
  • final, finally, finalize 的區別
  • Object 類中的方法
  • equals 與 == 的區別

1.2 Java 常用集合

  • List 和 Set 區別
  • List 和 Map 區別
  • Arraylist 與 LinkedList 區別
  • ArrayList 與 Vector 區別
  • ArrayList在循環過程中刪除,會不會出問題
  • HashMap 和 Hashtable 的區別
  • HashSet 和 HashMap 區別
  • HashMap 的源碼,實現原理
  • HaspMap 擴容是怎樣的,爲什麼都是2的N次冪的大小
  • HashMap,HashTable,ConcurrentHashMap 的區別

1.3 Java IO 和 NIO

  • 什麼是比特(Bit),什麼是字節(Byte),什麼是字符(Char),它們長度是多少,各有什麼區別
  • java 中有幾種類型的流
  • 字符流和字節流有什麼區別
  • 什麼是 java 序列化,如何實現 java 序列化?
  • IO 和 NIO 區別
  • ByteBuffer 與 StringBuffer 有什麼區別
  • 內存映射緩存區是什麼
  • 直接緩衝區與非直接緩衝器有什麼區別
  • 原生的 NIO 在 JDK 1.7 版本存在 epoll bug

2 多線程

2.1 線程的基本概念

  • 線程和進程的區別
  • 創建線程的方式有哪幾種
  • Callable 和 Future 的瞭解
  • 線程的生命週期
  • ThreadLocal 原理分析
  • sleep 和 wait 的區別
  • notify 和 notifyAll 的區別
  • sleep() 、join()、yield()有什麼區別

2.2 線程池

  • 爲什麼使用線程池
  • 線程池的幾種實現方式
  • 線程池的實現原理
  • 線程池的停止方法

2.3 鎖

  • synchronized 關鍵字的用法,優缺點
  • synchronized 與 lock 的區別
  • volitile 關鍵字的作用,原理
  • CAS 概念及理解
  • 悲觀鎖和樂觀鎖
  • 可重入鎖的用處及實現原理

3 數據庫

  • 數據庫鎖、行鎖
  • 事物的性質
  • MySQL 索引使用的注意事項
  • 數據庫索引的原理
  • MySQL 數據庫的常用存儲引擎

4 算法

  • 排序算法
  • B+樹
  • 紅黑樹

5 框架

  • BeanFactory 和 ApplicationContext 有什麼區別
  • Spring Bean 的生命週期
  • Spring 的單例實現原理
  • Spring IOC 如何實現
  • 說說 Spring AOP
  • Spring AOP 實現原理
  • 動態代理(cglib 與 JDK)
  • Spring 框架中用到了哪些設計模式
  • MVC 設計思想
  • Spring MVC 運行流程
  • SpringMVC 的Controller 是如何處理參數的

6 網絡

  • 計算機網絡的模型
  • TCP,UDP 區別
  • 三次握手,四次揮手,爲什麼要四次揮手
  • 長連接和短連接
  • 連接池適合長連接還是短連接
  • https 原理

PS:這是本人之前面試過程中遇到的較多的以及不太懂的問題、本人覺得比較重要的。也參考了一些網上別人的面試問題,歡迎大家補充。
後續會針對這些知識點,詳細寫一寫學習的總結,歡迎關注與指正。

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