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(無鎖技術)。
什麼是ThreadLocal。
建立線程池的4種方式。
ThreadPoolExecutor的內部工做原理。
分佈式環境下,怎麼保證線程安全。
想要朝這方面發展或者真心有興趣的。能夠找我要一些基礎的學習視頻,Q號碼:3300863615,這個是免費的,但願同窗找我要的時候不要有理所應當的態度,畢竟都是個人心血,但願你是真的有一顆想要學好java的心,我也會盡所能的去幫助你成爲一名優秀的程序員。
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