1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        2020 華為|字節(jié)|騰訊|京東|網(wǎng)易|滴滴面經(jīng)分享(6 個 offer)

        共 5129字,需瀏覽 11分鐘

         ·

        2021-01-04 23:20

        本文是一位讀者的面經(jīng)分享(最終選擇了騰),封面為讀者本人。我對文章進了重新排版。

        每個人成功的經(jīng)歷都不可復制, 我們可以借鑒吸收別人的經(jīng)驗為己所用。非常希望這篇文章的內(nèi)容可以對小伙伴們有幫助!

        另外,把自己上岸的經(jīng)歷分享出來是一件非常棒的事情,我在這里實名為這位讀者點個贊 ?

        個人介紹

        目前大三,本科就讀于電子科技大學。

        我在大一進入學校實驗室學習,負責數(shù)據(jù)收集、日常開發(fā)、NLP。用到的技術包括:

        • 語言:Java、Python
        • 技術:
          • 爬蟲:協(xié)程、異步 OI、正則表達式
          • 后端:SpringBoot、MyBatis、MySQL
          • 前端:HTML、CSS、JavaScript、BootStrap
          • 深度學習:Pytorch、Keras

        在實驗室接觸的比較廣泛,不過感覺不夠深入,于是在大二下開始深入后端技術。

        我在大二下開始做了些開源項目并深入 Java 相關技術,深入學習了:Java 核心技術、Java 虛擬機、Java 并發(fā)編程、設計模式、MySQL、Spring、SpringBoot、Mybatis。

        在大三上期,11 月開始準備 Java 實習相關事務:

        一個月的面試后,陸續(xù)拿到了字節(jié),網(wǎng)易、京東、滴滴、騰訊和某區(qū)塊鏈公司的 6 個實習 offer。

        復習經(jīng)歷

        因為之前就深入學習過,所以總的復習時間也不長,大概是一周左右,后面是通過邊面試邊查漏補缺的方式來補短板。

        前兩天的復習內(nèi)容:

        Java 基礎

        • 面向對象特性:封裝,多態(tài)(動態(tài)綁定,向上轉型),繼承
        • 泛型,類型擦除
        • 反射,原理,優(yōu)缺點
        • staticfinal 關鍵字
        • String,StringBuffer,StringBuilder底層區(qū)別
        • BIO、NIO、AIO
        • Object 類的方法
        • 自動拆箱和自動裝箱

        Java 集合框架

        • List :ArrayList、LinkedListVector、CopyOnWriteArrayList
        • Set:HashSetTreeSet、LinkedHashSet
        • Queue:PriorityQueue
        • Map:HashMap,TreeMapLinkedHashMap
        • fast-fail,fast-safe 機制
        • 源碼分析(底層數(shù)據(jù)結構,插入、擴容過程)、線程安全。

        Java 虛擬機

        • 類加載機制、雙親委派模式、3 種類加載器(BootStrapClassLoaderExtensionClassLoader,ApplicationClassLoader
        • 運行時內(nèi)存分區(qū)(PC,Java 虛擬機棧,本地方法棧,堆,方法區(qū)(永久代,元空間))
        • JMM:Java 內(nèi)存模型
        • 引用計數(shù)、可達性分析
        • 垃圾回收算法:標記-清除,標記-整理,復制
        • 垃圾回收器:比較,區(qū)別(Serial,ParNew,Parallel Scavenge ,CMS,G1)Stop The World
        • 強、軟、弱、虛引用
        • 內(nèi)存溢出、內(nèi)存泄漏排查
        • JVM 調優(yōu),常用命令

        Java 并發(fā)

        • 三種線程初始化方法(Thread、Callable,Runnable)區(qū)別
        • 線程池(ThreadPoolExecutor,7 大參數(shù),原理,四種拒絕策略,四個變型:Fixed,Single,Cached,Scheduled)
          • Synchronized
          • 使用:方法(靜態(tài),一般方法),代碼塊(this,ClassName.class
          • 1.6 優(yōu)化:鎖粗化,鎖消除,自適應自旋鎖,偏向鎖,輕量級鎖
          • 鎖升級的過程和細節(jié):無鎖->偏向鎖->輕量級鎖->重量級鎖(不可逆)
          • 重量級鎖的原理(monitor對象,monitorenter,monitorexit
          • ReentrantLock:和Synchronized區(qū)別?(公平鎖、非公平鎖、可中斷鎖....)、原理、用法
          • 有界、無界任務隊列,手寫BlockingQueue
          • 樂觀鎖:CAS(優(yōu)缺點,ABA 問題,DCAS)
          • 悲觀鎖:
          • ThreadLocal :底層數(shù)據(jù)結構:ThreadLocalMap、原理、應用場景。
          • Atomic 類(原理,應用場景)
          • AQS:原理、Semaphore、CountDownLatch、CyclicBarrier
          • Volatile:原理:有序性,可見性

            第三天的復習內(nèi)容:

        MySQL

        • 架構:Server 層,引擎層(緩存,連接器,分析器,優(yōu)化器,處理器)
        • 引擎:InnoDB,MyISAM,Memory 區(qū)別
        • 聚簇索引,非聚簇索引區(qū)別(從二叉平衡搜索樹復習(AVL,紅黑樹)到 B 樹,最后 B+樹)
        • MySQL、SQL 優(yōu)化方法
        • 覆蓋索引,最左前綴匹配
        • 當前讀,快照讀
        • MVCC 原理(事務 ID,隱藏字段,Undo,ReadView)
        • Gap Lock、Next-Key Lock、Record Lock
        • 三大范式

        SQL

        • 常用 SQL
        • 連接:自連接,內(nèi)連接(等值,非等值,自然連接),外連接(左,右,全)
        • Group BY 和 Having
        • Explain

        第四天的復習內(nèi)容:

        Spring

        • AOP 原理(JDK 動態(tài)代理,CGLIB 動態(tài)代理)和 IOC 原理
        • Spring Bean 生命周期
        • SpringMVC 原理
        • SpringBoot 常用注解

        設計模式

        • 三種類型:創(chuàng)建、結構、行為
        • 單例模式:餓漢,懶漢,DCL
        • 簡單工廠,工廠方法,抽象工廠
        • 代理模式
        • 裝飾器模式
        • 觀察者模式
        • 策略模式
        • 迭代器模式
        • ....

        第五天的復習內(nèi)容:

        計算機網(wǎng)絡

        • OSI 模型、TCP/IP 模型
        • TCP 和 UDP 區(qū)別
        • TCP 可靠性傳輸原理:重傳、流量控制、擁塞控制、序列號與確認應達號、校驗和
        • 三次握手、四次揮手過程、原理
        • timewait、closewait
        • HTTP
          • 報文格式
          • 1.0 1.1 2.0
          • 狀態(tài)碼
          • 無狀態(tài)解決(Cookie Session 原理)
        • HTTPS
          • CA 證書
          • 對稱加密
          • 非對稱加密
        • DNS 解析過程,原理
        • IP 協(xié)議、ICMP 協(xié)議(Ping、Tracert)、ARP 協(xié)議、路由協(xié)議
        • 攻擊手段與防范:XSS、CSRF、SQL 注入、DOS、DDOS

        第六天的復習內(nèi)容:

        操作系統(tǒng):

        • 進程、線程和協(xié)程區(qū)別
        • 進程通信方式(管道,消息隊列,共享內(nèi)存,信號,信號量,socket)
        • 進程調度算法(先來先服務,短作業(yè)優(yōu)先,時間片輪換,多級反饋隊列,優(yōu)先級調度)
        • 內(nèi)存管理:分頁(頁面置換算法:手寫 LRU)、分段、虛擬內(nèi)存

        第七天和以后的復習內(nèi)容:

        每天做點刷算法題(劍指 offer、LeetCode 面試 Hot 題) +查漏補缺。

        面試經(jīng)歷

        字節(jié)跳動

        第一面

        1. 自我介紹,介紹項目

        2. 協(xié)程、線程、進程區(qū)別

        3. 手寫 LRU(要求用泛型寫)、手寫 DCL

        4. DNS 解析過程

        5. 輸入一個 URL 到瀏覽器,整體流程

        6. 談談 Java 虛擬機你的認識?垃圾回收算法?垃圾回收器

        7. 知道哪些 Java 的鎖?CAS 的缺點?

        第二面

        1. 自我介紹、介紹項目
        2. 手寫最大堆
        3. 設計模式了解嗎?幾大類型?談談工廠模式?
        4. 談一下 Java 集合框架?HashMap 線程安全的嗎?會出現(xiàn)什么問題?
        5. 說說 MySQL 的架構?
        6. InnoDB 和 MyISAM 區(qū)別?
        7. 知道聚簇索引和非聚簇索引嗎?B 樹和 B+樹區(qū)別?
        8. 一道 LeetCode 難問題:接雨水(動態(tài)規(guī)劃解決)

        第三面

        1. 自我介紹、介紹開源項目
        2. 線程池了解嗎?原理?可以寫個 BlockingQueue 嗎?
        3. 說說 fast-fail 和 fast-safe?
        4. 了解死鎖嗎?怎么解決?
        5. 進程間通信方式?哪種最高效?
        6. 說說 MYSQL 優(yōu)化策略?
        7. 說了一下部門介紹,主要業(yè)務,說可能會轉 GO 等等

        第四面(HR)

        1. 介紹自己
        2. 團隊怎么協(xié)作?有沒有矛盾?怎么解決的?
        3. 入職時間?實習多久?

        華為

        第一面

        1. 自我介紹
        2. 談項目(談了很久)
        3. HTTP 的無狀態(tài)怎么解決?(Cookie Session)
        4. TCP 如何保證可靠性傳輸?(校驗和,序列號和確認應答號,重傳,流量控制,擁塞控制)
        5. ARP 過程?
        6. 進程調度算法?
        7. 一道動態(tài)規(guī)劃題目:不同路徑

        第二面

        1. 自我介紹
        2. 談項目(你覺得收獲最大的項目)
        3. 談談 Spring AOP 和 IOC
        4. 談談你知道的 MySQL 所有內(nèi)容
        5. 手寫個歸并排序
        6. 談談你對分布式系統(tǒng)的認識?
        7. 談談你對華為的認識?華為的文化和價值觀?

        HR

        技術面試都通過了,問 HR 怎么樣,說應該沒問題,等了一星期 offer,最后發(fā) offer 的時候,HR 說我的性格測試沒通過,Offer 審批不下來,人傻了。因為華為在成都,字節(jié)在北京,而且技術官的意向是很穩(wěn)能進華為,我想著在家近的地方實習,在等待的一周中就把字節(jié)拒了,最后華為沒發(fā)到 offer,直接架空,崩潰!第一次找實習沒太多經(jīng)驗,策略不對,心里很難受,不過調整了一下,繼續(xù)了新的面試

        網(wǎng)易

        第一面

        1. 自我介紹
        2. 介紹一個對自己影響深刻的項目
        3. 說說進程間調度的算法
        4. 說說匿名函數(shù)
        5. 說說協(xié)程、線程、進程。
        6. 你對游戲引擎了解多少?
        7. 手寫地杰斯特拉算法?
        8. 了解 A*算法嗎?
        9. 說說 Python 和 Java 的區(qū)別?
        10. Java 是怎么進行垃圾回收的?
        11. 然后聊了很多生活上的問題,非技術問題。

        第二面

        1. 自我介紹
        2. 介紹項目
        3. 說說深度優(yōu)先搜索算法、回溯算法
        4. 一道算法題:一個走迷宮問題,DFS+回溯解決。
        5. 你對 C 熟悉嗎?Lua 使用過嗎?
        6. 介紹業(yè)務,主要工作內(nèi)容。

        HR 面

        1. 自我介紹
        2. 介紹一個項目中遇到的問題,怎么解決的?
        3. 介紹一下博客?開源項目?為什么花時間做這些?
        4. 大學最成功的一件事?

        滴滴

        第一面

        1. 自我介紹、介紹項目
        2. Java 面向對象的三大特性?
        3. 了解 Java 哪些鎖?Synchronized 優(yōu)化內(nèi)容?鎖升級過程?
        4. 談談 Java 虛擬機?類加載機制?
        5. 知道雙親委派模式嗎?有什么好處?
        6. Java 運行時內(nèi)存分區(qū)?
        7. 死鎖了解嗎?如何解決?
        8. 哪些對象可以作為 GC ROOTS?
        9. 了解的設計模式?手寫一下 DCL 吧

        第二面

        1. 自我介紹
        2. 介紹項目(難點以及怎么解決的?)
        3. 談談 MySQL 的各種引擎?
        4. 覆蓋索引和非覆蓋索引區(qū)別?
        5. MYSQL 優(yōu)化方法有哪些?
        6. 講講 HashMap 的原理,put 過程?resize 過程?線程安全嗎?死循環(huán)問題?
        7. 了解什么中間件嗎?
        8. 講講 Java 里面的鎖?
        9. 一道算法題:最長公共子串

        HR 面

        1. 自我介紹
        2. 到崗時間
        3. 自己的優(yōu)勢
        4. 大學最失敗的一件事
        5. 對加班的看法

        京東

        第一面

        1. 自我介紹
        2. 談項目
        3. TCP 如何保證可靠傳輸?擁塞控制算法?
        4. 講講 Spring 的 AOP?
        5. SpringBoot 常用哪些注解?
        6. 談談 Java 虛擬機?
        7. 垃圾回收算法有哪些?
        8. 了解哪些垃圾回收器?講一下 CMS 垃圾回收過程
        9. 算法題:
          1. 兩個棧實現(xiàn)隊列
          2. 最近公共祖先節(jié)點

        第二面

        1. 自我介紹
        2. 講講 Java 集合框架,HashMap 原理。
        3. 知道哪些鎖?
        4. 談談公平鎖和非公平鎖?
        5. Synchronized 和 ReentrantLock 區(qū)別
        6. MySQL 的索引為什么快?有哪些索引?原理數(shù)據(jù)結構?
        7. MySQL 有哪些優(yōu)化的策略?
        8. 死鎖了解嗎?
        9. ThreadLocal 了解嗎?原理?
        10. 手寫一個堆排序。
        11. 一道算法題:完全平方數(shù)(動態(tài)規(guī)劃)

        HR 面

        1. 自我介紹
        2. 多久可以到崗?實習時間?
        3. 對加班看法?
        4. 如何團隊分工的?

        騰訊

        第一面

        1. 自我介紹
        2. 介紹項目
        3. 說說協(xié)程和線程區(qū)別?
        4. Java 虛擬機的作用?垃圾回收的過程?
        5. 了解的垃圾回收器?
        6. 手寫快排
        7. 算法題:按 K 位反轉鏈表
        8. 一百億個數(shù),n 個機器,怎么排序?(桶排序)

        第二面

        1. 自我介紹
        2. 介紹項目
        3. TCP 和 UDP 區(qū)別?如何保證可靠性?
        4. HTTP 的狀態(tài)碼記得哪些?
        5. ICMP 是哪層的?有什么用?
        6. 會哪些框架?
        7. Spring 的 AOP 認識?
        8. MySQL InnoDB 和 MyISAM 區(qū)別?
        9. 談談各種索引?為什么用 B+樹不用 B 樹?
        10. 死鎖的條件?如何解決?
        11. OOM 怎么排查?
        12. 介紹業(yè)務

        HR 面

        1. 自我介紹
        2. 多久能來實習?實習多久?
        3. 加班看法?
        4. 看你掌握技術挺多,如何快速學習一個技術的?

        總結

        因為之前學的也比較深入,復習時間也沒用太多,主要就是寫點算法題保持手感。

        面試中遇到的問題,9 成都已經(jīng)復習了,而且也比較基礎,也都在掌握之中。

        像中間件、微服務這些我沒寫在簡歷上,不是很會,面試官也不會刻意刁難你,實習的話,感覺大廠可能更注重基礎和對知識的深入度,面試了一個月收貨還是挺多的,希望總結一下面經(jīng),幫到更多的人~

        準備大廠面試的話,注重基礎,多練算法題,基本上就沒問題了!加油!

        推薦?:?Github掘金計劃:Github上的一些優(yōu)質項目搜羅

        推薦?:啪地一下,很快?。∫呀?jīng) 一年了!

        我是Guide哥,Java后端開發(fā),擁抱開源,喜歡烹飪,自由的少年。一個喜歡讀者面試經(jīng)驗的技術人。我們下期再見!

        瀏覽 46
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            中国黄视频 | 一本大道AV伊人久久综合蜜芽 | 国产精品mv在线观看 | 亚洲欧美视频在线观看 | 欧美性老妇一区二区三区 | 狠狠操狠狠操狠狠操 | 无码毛片一区二区三区视频免费播放 | 揉捏小核高潮不停颤抖 | 天天靠逼 | 91国偷自产一区二区三区蜜臀 |