每場面試都必須認真面對,因為每一場面試都是一段經驗,面試面多了,所謂的經驗就有了!
一、常見演算法和資料結構
1、陣列、鏈表、佇列、堆疊的各種操作(性能,場景)
2、各類排序演算法以及復雜度分析(快排、歸并、堆),不同排序演算法的穩定性
3、理解并可以分析時間和空間復雜度,
4、動態規劃、貪心,
5、回溯演算法
6、二叉樹、前中后虛(圖考察的很少,只有筆試偶爾遇到)
7、DFS、BFS 演算法
8、單調堆疊、單調佇列
二、作業系統
1、行程通信 IPC(幾種方式),行程與執行緒定義與區別
2、行程調度演算法、磁盤掃描演算法
3、虛擬記憶體、頁面置換演算法
4、內核態和用戶態的轉換的條件、中斷、系統呼叫
5、互斥與死鎖
6、linux 常用命令(問的時候都會給具體某一個場景)
7、Linux 的 IO 模型 BIO/NIO/AIO、 IO 多路復用
8、Linux 內核 select poll epoll、邊緣觸發和水平觸發
9、僵尸行程和孤兒行程
三、資料庫
1、索引(包括分類及優化方式,失效條件,底層結構 B 樹、B + 樹的區別優缺點)
2、優化(explain,慢查詢,show profile)、資料庫的范式
3、輔助索引、主鍵索引、聚簇索引、非聚簇索引、索引回表、索引覆寫、索引下推
4、聯合索引和最左匹配原則
5、引擎對比(InnoDB,MyISAM)
6、資料庫的鎖(行鎖,表鎖,頁級鎖,讀鎖,寫鎖,悲觀鎖,樂觀鎖)
7、隔離級別,依次解決的問題(臟讀、不可重復讀、幻讀)、隔離級別與加鎖的關系
8、事務的 ACID
9、分庫分表,主從復制,讀寫分離,
10、sql 語法(join,union,子查詢,having,group by)主要考察 sql 陳述句的書寫
四、計算機網路
1、OSI7 層模型(TCP4 層)、每層的協議
2、常見協議為位置在 OSI 七層協議的位置(HTTP/TCP/UDP/DNS/IMAP/ARP/ 路由器 / 交換機)
3、http/https 1.0、1.1、2.0、https 加密程序(對稱加密和非對稱加密)
4、get/post 以及 http 冪等性
5、http 協議頭相關、http 常見的狀態碼
6、TCP 與 UDP 比較
7、TCP 三次握手、四次揮手、擁塞控制(程序、閾值)、流量控制與滑動視窗
8、TCP 的 time_wait 和 close_wait
9、url 到頁面的程序
10、網路攻擊(CSRF、XSS、DDos)
五、Java 語言
(一)基礎
1、面向物件、四個特性、多載重寫、繼承、多型、反射
2、常見關鍵字 final、static、abstract、finalize、transient、native
3、StringBuffer、StringBuilder 和 String、字符常量池
4、六大設計原則、常見的設計模式(代理、工廠、單例、裝飾者、觀察者)
5、例外、常見的例外類
6、序列化
7、深拷貝和淺拷貝、值傳遞和參考傳遞
8、抽象類和介面
9、基本型別的默認值和取值范圍以及位元組數
(二)多執行緒
1、synchronized 關鍵字底層原理、鎖升級原理、輕量級鎖、重量級鎖
2、Lock 鎖機制、執行緒通信、、ThreadLocal、Atom 包、AQS、CAS 原理
3、volatile 關鍵字、記憶體屏障、happen-before 原則
4、同步佇列、等待佇列、阻塞佇列
5、執行緒池、執行緒池的執行流程、執行緒池的主要引數(coresize、阻塞佇列、maxsize、拒絕策略)、執行緒池的任務遞交方式和狀態變化,
6、thread 類的常見方法:sleep、join、yield;sleep 和 wait 方法的區別
7、執行緒的五種狀態、run 方法和 start 方法
8、守護執行緒和用戶執行緒
(三)集合框架
1、hashmap(這個基本是必考題)hashcode 函式、equals 函式、擴容機制、put 和 get 操作、jdk1.7 和 jdk1.8 的變化、hashmap 的尾部遍歷、紅黑樹的引入
2、hashmap 的執行緒安全問題,synchronizedMap、hashtable、concurrentHashMap
3、concurrentHashMap 的 jdk1.7 和 jdk1.8 的變化,底層實作執行緒安全的方式
4、常見的集合框架哪些是執行緒安全的,哪些是執行緒不安全的
5、arraylist 和 linkedlist、vector
6、集合的遍歷、迭代器
(四)JVM
1、JVM 記憶體模型、堆、堆疊、PC 計算器、永久代分別存盤的內容
2、GC 垃圾回收,三種 GC 演算法,七種 GC 收集器
3、CMS 和 G1 的優缺點、執行流程
4、年老代和年輕代、分代垃圾回收演算法
5、四種參考型別、GCroot 的可達性分析法
6、物件創建的程序、物件的記憶體分配
7、類加載的程序、類加載器
8、雙親委派機制、tomcat 的反雙親委派機制
9、JVM 調優,常見的調優引數
10、記憶體泄漏和記憶體溢位
六、專案 + 中間件
面試的第一個環節就是自我介紹,最好提前準備好腹稿,介紹的基本內容就是你的教育經歷 + 作業經歷 + 簡單的性格介紹,而作業經歷中的專案將成為接下來面試官詢問的重點,所以最好能準備一個拿得出手的專案,
如果在面試之前已經有作業經歷和專案經歷,就需要深挖你專案的亮點:
1.開發的時候使用的技術和中間件
2.遇到的問題、如何解決問題
3.是否有優化方案,如何優化你的專案
上面這三個問題基本上是最常見也是最基本的問題,準備專案的時候,一定要把上面這些問題準備好,如果是第一次找作業,最后也是提前撰寫一個專案練練手,現在比較火爆的專案就是 —— 秒殺系統,因為這個專案基本會用到主流的中間件(spring、Redis、訊息佇列 MQ、kafka),而且我在跟面試官交流的時候,面試官對這個專案也是認可的,前提你真的深入其中,
除了這些題目,我這還整理有很多Java的面試資料,各個方向的都有,也有Java的學習資料,有需要的可以關注+私信我!也可以點這里!,暗號:qdd 免費提供!

最后祝每個找作業的小伙伴都能順順利利哦!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/33129.html
標籤:其他
