一、有序數組排序,二分,複雜度
二、快排的時間複雜度,冒泡時間複雜度,快排是否穩定,快排的過程
三、有N個節點的滿二叉樹的高度。1+logN
四、朋友之間的點對點關係用圖維護,怎麼判斷兩人是不是朋友,並查集,時間複雜度,過程。
五、單元點最短路的方法,時間複雜度
六、如何實現關鍵字輸入提示,使用字典樹,複雜度多少,有沒有其餘方案,答哈希,若是是中文呢,分詞後創建字典樹?
七、hashmap的實現講一下吧,講的很詳細了。講一下紅黑樹的結構,查詢性能等。
八、Java中的垃圾回收講一下,講了分代,gc算法,gc root可達性分析等
九、講一下兩個項目你都作了什麼吧。
十、除了代碼以外你還學習了什麼技術,框架。
十一、死鎖是怎麼產生的
十二、線程和進程的區別
1三、進程的通訊方式
1四、CPU的執行方式
1五、代碼中遇到進程阻塞,進程僵死,內存泄漏等狀況怎麼排查。經過ps查詢狀態,分析dump文件等方式排查。
1六、Linux瞭解麼,查看進程狀態ps,查看cpu狀態 top。查看佔用端口的進程號netstat grep
1七、10g文件,只有2g內存,怎麼查找文件中指定的字符串出現位置。MapReduce分割文件處理java
1八、100w個數,怎麼找到前1000個最大的,堆排序,怎麼構造,怎麼調整,時間複雜度。面試
1九、一個矩陣,從左上角到右下角,每一個位置有一個權值。能夠上下左右走,到達右下角的路徑權值最小怎麼走。
20、四輛小車,每輛車加滿油能夠走一千米,問怎麼能讓一輛小車走最遠。說了好幾種方案,面試官引導我優化了一下,可是仍是不滿意,最後他說跳過。
2一、秒殺系統的架構設計
2二、MySQL的索引,B+樹性質。
2三、Linux的cpu 100怎麼排查,top jstack,日誌,gui工具
2四、Linux大文件怎麼查某一行的內容。
2五、Redis內存數據庫的內存指的是共享內存麼
2六、Redis的持久化方式
2七、hashmap的實現,hashtable,concurrenthashmap實現。算法
2八、hashMap和ConcurrentHashMap的區別
2九、hashMap內部具體如何實現的
30、若是hashMap的key是一個自定義的類,怎麼辦
3一、爲何重寫equals還要重寫hashcode
3二、ArrayList和LinkedList的區別,若是一直在list的尾部添加元素,用哪一個效率高?
3三、介紹一下Syncronized鎖。若是用這個關鍵字修飾一個靜態方法,鎖住了什麼?若是修飾成員方法,鎖住了什麼?
3四、介紹一下volatile
3五、多線程中的i++線程安全嗎?爲何?
3六、如何線程安全的實現一個計數器?
3七、講一下TCP的鏈接和釋放鏈接。
3八、講一下瀏覽器從接收到一個URL到最後展現出頁面,經歷了哪些過程。
3九、TCP和UDP的區別,具體使用場景呢。
40、TCP四次揮手講一下過程,最後一次ack若是客戶端沒收到怎麼辦。
4一、對於socket編程,accept方法是幹什麼的,在三次握手中屬於第幾回,能夠猜一下,爲何這麼以爲
4二、Redis和MySQL有什麼區別,用於什麼場景sql
4三、JDK 和 JRE 有什麼區別?數據庫
4四、== 和 equals 的區別是什麼?編程
4五、兩個對象的 hashCode()相同,則 equals()也必定爲 true,對嗎?數組
4六、final 在 java 中有什麼做用?瀏覽器
4七、接口和抽象類有什麼區別?安全
4八、BIO、NIO、AIO 有什麼區別?多線程
4九、如何決定使用 HashMap 仍是 TreeMap?
4七、線程和進程的區別?
4八、建立線程有哪幾種方式?
4九、線程有哪些狀態?
50、sleep() 和 wait() 有什麼區別?
5一、notify()和 notifyAll()有什麼區別?
5二、建立線程池有哪幾種方式?
5三、什麼是死鎖?怎麼防止死鎖?
5四、如何避免 sql 注入?
5五、什麼是 XSS 攻擊,如何避免?