京東
1 ngnix如何平滑啓動
2 linux awk的begin end作用
3 分佈式中限流策略
4 10億條數據的數據表,如何設計存儲,能儘快找出自己想要的數據
5 Token令牌加密登錄的原理
6. 一個mapreduce要訪問一個文件,需要進行多少個map
7 linux 內存管理方式LRU算法以及用java實現
8 Maven包衝突的解決辦法
美團
進程與線程的區別
Linux管理內存常用的算法
Jvm內存結構以及常用的垃圾回收算法,對象的分配
手寫樹的前序遍歷與層序遍歷
TCP的三次握手以及四次揮手,每次攜帶的報文信息
紅黑樹如何保證平衡的
手寫快排
網絡中的DNS解析的全過程
Mysql數據庫的索引實現機制
聚簇索引與非聚簇索引
Http協議中的緩存機制
有10G大小的文件,裏邊存的爲數字,內存限制爲1G,統計出出現次數最少的前十個數字
計算機的緩存結構
局部性原理
手寫二分查找(注意常規方法中的坑,大話數據結構中的二分查找有問題)
以字符串爲單位,進行字符串數組的反轉
Java中使用線程池的核心參數以及線程池的調用原理
複習的東西
數據庫方面
數據庫方面強烈推薦以下三個博客,其中一個是我們大神於海強總結的,超級全,超級贊,大家可以參考
https://zhuanlan.zhihu.com/p/25235279
http://www.cnblogs.com/Lawson/archive/2015/11/30/5008741.html
http://www.cnblogs.com/zhangs1986/p/4914125.html
計算機網絡
這塊建議大家以一個地址從在地址欄中輸入後開始,到服務器返回結果爲之爲線索,來整體掌握整個脈絡,常用幾層的作用,應用層,傳輸層一直到物理層,每層的作用是什麼,以及每層涉及到的協議都有什麼?常問的協議應該是http協議,tcp udp協議,ip協議,面試中還問到使用http請求頭與響應頭來實現緩存,完成頁面的優化,當時沒有答出來,後來經過查資料,理清了咋回事,將博客放到下邊,供大家參考
http://www.cnblogs.com/520yang/articles/4807408.html
操作系統
這塊也沒太好的資料,建議大家以課本爲主吧,主要多看一下以下幾個方面:
1. 內存管理常用算法,要清楚爲什麼連續存儲的訪問速度快,但會產生大量內存碎片,而離散方式存儲的訪問速度慢,但產生內存碎片少或者不會產生,每種算法使用自己 熟悉語言的實現方式
2. 局部性原理以及基於局部性原理,虛擬內存的實現方式以及調度方式
3. 進程與線程的區別
4. 死鎖的條件
5. 如何解除以及避免死鎖,銀行家算法必須清楚
6. 進程間的通訊方式有那些
數據結構和算法
這塊建議大家參考《大話數據結構》這本書
常用的算法,冒泡,選擇,插入,希爾,歸併,堆排,快排,二分查找這些算法最好能熟練掌握其時間複雜度,空間複雜度以及能熟練的手寫出對應的算法
樹的前、中、後序遍歷的遞歸,非遞歸方式熟練手寫,層序遍歷的實現,熟練手寫
有了以上基礎,大家可以多刷刷算法題了,推薦一本算法數,裏邊內容很經典,而且是面試,筆試中常問到算法題---《程序員代碼面試指南 IT名企算法與數據結構題目最優解 ,左程雲著 ,P513》
http://pan.baidu.com/s/1hr9eaiw
Linux
Linux常用命令最好掌握一些,如ps,netstat,grep,awk等,還有vim使用中 的一些常用操作
Java方面
1. 基本類型,引用類型的存儲方式等,這些最好與上邊jvm內存模型一起復習
2. Java的異常體系
3. Java中多線程的實現方式,以及線程池的實現與使用
4. 線程的生命週期
5. Hashmap,hashtable的實現方式與區別,線程安全問題,hashmap爲什麼會產生線程安全,如何避免。
6. ConcurrentHashMap分別在jdk1.7,1.8中的實現方式是怎麼樣的,如何保證的線程安全以及1.8中的紅黑樹如何使用的
7. 常用的設計模式