1. 程式人生 > 其它 >java面向過程程式設計,Java演算法書籍推薦

java面向過程程式設計,Java演算法書籍推薦

1.筆試常見的問題?

面試常見的問題上面給的面試題連結基本都有。我只提幾點:

  1. 寫SQL:寫SQL很常考察group by、內連線和外連線。
  2. 手寫程式碼:手寫程式碼一般考單例、排序、執行緒、消費者生產者。我建議排序演算法除了氣泡排序,最好還能手寫一種其他的排序程式碼。試想:如果一般面試者都寫的氣泡排序,而你寫的是快速排序/堆排序,肯定能給面試官留下不錯的印象。

2.面試流程?

  1. 讓你自我介紹
  2. 問Java基礎知識
  3. 問專案
  4. 情景問題,例如:你的一個功能上了生產環境後,伺服器壓力驟增,該怎麼排查。
  5. 你有什麼想問面試官的

3.面試常問的知識點?

1)集合相關問題(必問):

  • HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList的底層實現。
  • HashMap和Hashtable的區別。
  • ArrayList、LinkedList、Vector的區別。
  • HashMap和ConcurrentHashMap的區別。
  • HashMap和LinkedHashMap的區別。
  • HashMap是執行緒安全的嗎。
  • ConcurrentHashMap是怎麼實現執行緒安全的。

2)多執行緒併發相關問題(必問):

  • 建立執行緒的3種方式。
  • 什麼是執行緒安全。
  • Runnable介面和Callable介面的區別。
  • wait方法和sleep方法的區別。
  • synchronized、Lock、ReentrantLock、ReadWriteLock。
  • 介紹下CAS(無鎖技術)。
  • volatile關鍵字的作用和原理。
  • 什麼是ThreadLocal。
  • 建立執行緒池的4種方式。
  • ThreadPoolExecutor的內部工作原理。
  • 分散式環境下,怎麼保證執行緒安全。

3)JVM相關問題:

  • 介紹下垃圾收集機制(在什麼時候,對什麼,做了什麼)。
  • 垃圾收集有哪些演算法,各自的特點。
  • 類載入的過程。
  • 雙親委派模型。
  • 有哪些類載入器。
  • 能不能自己寫一個類叫java.lang.String。

4)設計模式相關問題(必問):

  • 先問你熟悉哪些設計模式
  • 然後再具體問你某個設計模式具體實現和相關擴充套件問題。

5)資料庫相關問題,針對Mysql(必問):

  • 給題目讓你手寫SQL。
  • 有沒有SQL優化經驗。
  • Mysql索引的資料結構。
  • SQL怎麼進行優化。
  • SQL關鍵字的執行順序。
  • 有哪幾種索引。
  • 什麼時候該(不該)建索引。
  • Explain包含哪些列。
  • Explain的Type列有哪幾種值。

6)框架相關問題:

  • Hibernate和Mybatis的區別。
  • Spring MVC和Struts2的區別。
  • Spring用了哪些設計模式。
  • Spring中AOP主要用來做什麼。
  • Spring注入bean的方式。
  • 什麼是IOC,什麼是依賴注入。
  • Spring是單例還是多例,怎麼修改。
  • Spring事務隔離級別和傳播性。
  • 介紹下Mybatis/Hibernate的快取機制。
  • Mybatis的mapper檔案中#和$的區別。
  • Mybatis的mapper檔案中resultType和resultMap的區別。
  • Mybatis中DAO層介面沒有寫實現類,Mapper中的方法和DAO介面方法是怎麼繫結到一起的,其內部是怎麼實現的。

7)其他遇到問題:

  • 介紹下棧和佇列。
  • IO和NIO的區別。
  • 介面和抽象類的區別。
  • int和Integer的自動拆箱/裝箱相關問題。
  • 常量池相關問題。
  • ==和equals的區別。
  • 過載和重寫的區別。
  • String和StringBuilder、StringBuffer的區別。
  • 靜態變數、例項變數、區域性變數執行緒安全嗎,為什麼。
  • try、catch、finally都有return語句時執行哪個。
  • 介紹下B樹、二叉樹。
  • ajax的4個字母分別是什麼意思。
  • xml全稱是什麼。
  • 分散式鎖的實現。
  • 分散式session儲存解決方案。
  • 常用的linux命令。

給大家共享一下我整理的對標大廠複習的面試資料

  • 第一部分:Java基礎-中級-高階
  • 第二部分:開源框架(SSM:Spring+SpringMVC+MyBatis)
  • 第三部分:效能調優(JVM+MySQL+Tomcat)
  • 第四部分:分散式(限流:ZK+Nginx;快取:Redis+MongoDB+Memcached;通訊:MQ+kafka)
  • 第五部分:微服務(SpringBoot+SpringCloud+Dubbo)
  • 第六部分:其他:併發程式設計+設計模式+資料結構與演算法+網路

這些面試全部出自大廠面試真題和麵試合集當中,小編已經為大家整理完畢(PDF版)

面試題總結

其它面試題(springboot、mybatis、併發、java中高階面試總結等)

本文已被CODING開源專案:【一線大廠Java面試題解析+核心總結學習筆記+最新講解視訊+實戰專案原始碼】收錄