零基礎學習一年,拿到BAT三家offer(Java崗)

引言

一、本文沒有公衆號和博客推廣,請放心mysql

二、Java後臺開發的經驗,其餘崗位沒有借鑑意義web

三、純發經驗攢人品,不裝不宣傳,有問題留言你們一塊兒討論,互幫互助!!面試

四、我的學習方法,並不必定適合每一個人。不喜歡看視頻學習的就不用繼續往下看了。算法

五、 因爲讀研都是本身擠時間的,過程不表,實驗室的內容就沒敘述了。sql

一面(電話)(50分鐘)面的CSIG下面的騰訊雲,技術棧是Java,不過幾乎不咋問Java。

1. 算法題:六七道,都是劍指offer難度
2. 半小時項目介紹 & 問答
3. 分佈式相關:rpc原理、微服務架構
4. 海量數據問題:套路題
5. 計網:傳輸層、網絡層(必需要很是熟,ping的原理,tcp的三次握手、四次揮手、擁塞控制。UDP的不可靠、一對1、一對多)
6. 操做系統:虛擬內存、段式、頁式、進程調度算法
7. 數據一致性: 分佈式數據一致性、緩存數據一致性
8. Java相關:線程池、HashMap、CopyOnWriteArrayList
9. Redis相關:複製原理、持久化原理
10. 雜談:最近看什麼書,實習地點。數據庫

二面(85分鐘)

1. 算法題:最長不重複字串
2. 半小時鐘項目介紹 & 問答
3. 操做系統:Linux的namespace(不會)、進程線程、線程通訊方式、進程通訊方式
4. 計算機網絡:傳輸層和網絡層,由於我項目作了鏈路層,也講了一下。
5. Java相關: 線程池
6. 數據庫相關: 一條連表查詢語句。數據庫索引原理
7. 海量數據問題: 套路題
8. 雜談:介紹了部門業務數組

三面(電話) (20分鐘)

1. 應該是大老闆面試了,問的都很哲學:技術背景、學習方法、項目介紹
2. 問了一些簡單技術問題。主要考察邏輯表達和總體的素質。
2. 雜談:介紹了部門業務緩存

hr(電話)(15分鐘)

1. 家庭狀況
2. 面騰訊緣由,還有面其餘公司麼
3. 興趣愛好
4. 業務介紹
5. 口頭offer安全

百度是去年找平常實習的面經,面了兩個部門,整理了一下服務器

信息中心

一面

  1. 算法:字符串反轉 、 倒着打印鏈表(爲何用遞歸比用棧差?) 、 單例模式
  2. 線程start 、 run方法區別
  3. 能夠不經過構造函數建立對象嗎? object.clone() 反序列化
  4. volatile關鍵字
  5. Spring AOP原理(cglib 和 JDK的動態代理實現有什麼區別?)
  6. 重寫equals方法,爲何必定要重寫hashcode方法?
  7. 字符串 == 比較。輸出true仍是false;
  8. 看了七八個程序,而後問輸出什麼?
  9. HashMap 能不能存儲 null 能,放在第一個格子裏?concurrentHashMap 能不能存儲 null?
  10. 分佈式系統設計:如今有一個方法,能夠給10臺服務器調用,如何統計一天內10臺電腦調用的次數和?
  11. 分佈式鎖的設計:天天早上8:00輸出前一天的業務報表發到老闆郵箱。若是如今有10臺服務器,若是設計這個定時任務?
    法1:分佈式鎖。法2:經過外部發來一個http請求,傳給ngnix,經過ngnix自動進行分配到某一臺服務器上。

二面

  1. 你對哪方面知識比較自信?
  2. HashMap初始容量多少?(16)爲啥要設計初始爲16?若是傳入容量10會怎麼樣?(仍是會構建16容量的);
  3. 知道什麼異常?(說幾個)
  4. http的狀態碼說幾個。403是什麼狀態?
  5. String有什麼方法?
  6. list,set集合在iterator輸出的時候能刪去值嗎?
  7. SimpleDateFormat是線程安全的嗎?
  8. 手寫左鏈接。
  9. 聚合函數有哪些?

三面

  1. 算法題:數組A和數組B,求 A並B - A交B;(說了幾種,好像不滿意不是最優解)
  2. 算法題:矩陣搜索(說完以後問優化,沒想到,提示二分搜索);
  3. SSM的運做流程,說說你作的項目難點。
  4. GET POST請求,url裏面的參數
  5. 說說索引,若是對每一列都建索引有什麼很差?
  6. 白盒測試、黑盒測試
  7. Linux會嗎?

鳳巢

一面

  1. 算法題:手寫堆排序
  2. Spring IOC原理 AOP原理,如何利用AOP實現日誌,寫過嗎?
  3. Spring bean建立的方法 註解 @Service xml配置 @bean
  4. Java反射原理?
  5. SpringBoot 裏面 @bean 解釋一下
  6. Java內存模型和運行時數據區
  7. Spring 中事務@Tranctional,出現異常回滾是怎麼實現的
  8. 數據庫MVCC原理
  9. 樂觀鎖和悲觀鎖概念
  10. 悲觀鎖的實際例子。 select * from table for update ...
  11. 樂觀鎖實際上有沒有加鎖?
  12. 用兩個線程去操做數據庫,樂觀鎖具體是什麼實現的?演示一遍,畫一畫
  13. 數據庫經常使用存儲引擎,區別,鎖範圍。
  14. 寫過單純的非web項目的 Spring工程, 用main實現的嗎?例子。
  15. SSM 三層技術架構的整體流程
  16. @component @service @controller 三個區別
  17. mybatis中 # 和 $ 的區別?哪一個會出現SQL注入?
  18. JVM 新生代,老年代。survival是否是在任意時刻都只有一塊有對象?
  19. JVM 垃圾收集器瞭解哪些?

二面

  1. 算法題: 實現一個四則運算計算器(兩個棧 + 優先級) , 冒泡排序
  2. 輸入一個網站的全過程。從計算機網絡到服務器內部技術實現流程。
  3. 平常怎麼學習。

頭條面試

一面

1. 算法題:二分搜索相關
2. 概念題:解釋 分佈式、微服務、負載均衡、高可用
3. http是有狀態仍是無狀態? TCP是有狀態仍是無狀態?
4. 客戶端禁用cookie怎麼辦? 你說的實現方式安全嗎?
5. SSL,http和https,https是有狀態仍是無狀態?
6. String爲何設計成final不可變? 是怎麼實現不可變的?
7. 本身能實現一個不可變的類嗎?
8. equals 和 hashcode 爲何要一塊兒重寫?若是不重寫hashcode會出現什麼問題?
9. hashmap插入的時候,哈希衝突解決? 查找的時候,哈希衝突怎麼解決?
10. hashset是怎麼實現的? hashmap是怎麼實現hashset的?
11. 多線程:併發和並行,原子類,CAS操做
12. mysql的索引:B+樹底層實現?B樹的底層實現?爲何要用B+樹而不用B樹?
13. 最左前綴匹配具體是怎麼實現查找的?最左前綴匹配用了B+樹的哪些特性?
14. (a,b,c)聯合索引,爲何不能單用(b),而必定要用(a,b)?B+樹是怎麼實現的?
15. 什麼是幻讀,不可重複讀?這些概念是在事務內仍是事務外? 事務內
16. mysql怎麼實現可重複讀?設置了可重複讀隔離級別底層是怎麼實現的? (MVCC)
17. 瞭解MVCC嗎?怎麼實現的?什麼是快照讀?快照讀能讀取到最新的嗎?快照讀和當前讀的區別?
18. synchronized和reentrentlock哪一個效率高?

二面

1. 算法:實現一個緩存隊列 ,二叉樹的鏡像
2. 進程和線程的區別?內存管理說一下你的瞭解。進程調度算法。
3. 爲啥B+樹最後葉子節點須要用鏈表相鏈接? 便於區間查找
4. TCP狀態轉換圖,畫一下。
5. 操做系統I/O模型瞭解嗎?epoll模型瞭解嗎?
6. CopyOnWriteArrayList的相關特性?
7. ArrayList遍歷的時候能刪除元素嗎? 刪除的時候會報什麼異常?

三面

1. 算法題: (1)樹的節點最大距離(2)區間覆蓋 例 [1 3] [2 5] [3 6]可否覆蓋[2 6]2. Linux相關命令。3. 手寫SQL,join

相關文章
相關標籤/搜索