日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2020年11月最新互联网大厂面试经验分享【网易、阿里、腾讯、京东、百度、爱奇艺、字节、小米、美团、搜狐、58】

發(fā)布時間:2023/12/16 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2020年11月最新互联网大厂面试经验分享【网易、阿里、腾讯、京东、百度、爱奇艺、字节、小米、美团、搜狐、58】 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

2020年11月最新互聯(lián)網(wǎng)大廠面試經(jīng)驗分享【網(wǎng)易、阿里、騰訊、京東、百度、愛奇藝、字節(jié)、小米、美團、搜狐、58】

本文所有的面經(jīng)內(nèi)容是我從牛客網(wǎng)拔下來的,我的計劃是,以后不定期扒點兒當(dāng)下最新的互聯(lián)網(wǎng)面經(jīng),然后自己慢慢的把里面所有的面試題啃完,并整理分享給大家,共同進步,進大廠!!!

已擼列表如下:

1. 一文干翻Integer、int等基礎(chǔ)數(shù)據(jù)類型和包裝類型相關(guān)問題
2. 面試必問 容器 ArrayList
3. 面試必問 Redis 持久化
4. 面試必問 Redis 數(shù)據(jù)結(jié)構(gòu)底層原理一
5. 面試必問 Redis 數(shù)據(jù)結(jié)構(gòu)底層原理二

學(xué)習(xí)套路 先扒面試題 + 然后分析學(xué)習(xí) + 總結(jié)分享全體起立

聲明一手

面經(jīng)內(nèi)容從牛客扒的
https://www.nowcoder.com/

文章目錄

    • 網(wǎng)易
      • Java基礎(chǔ)
      • 開源框架
      • 網(wǎng)絡(luò)相關(guān)
      • Nginx相關(guān)
      • 數(shù)據(jù)庫相關(guān)
      • Redis相關(guān)
      • Linux相關(guān)
      • 情景模擬&其他
    • 曹操出行
    • 京東
    • 百度
    • 騰訊
    • 阿里巴巴
    • 愛奇藝
    • 字節(jié)跳動
    • 搜狐
    • 58同城
    • 國美在線
    • 小米
    • 去哪兒
    • 快手

網(wǎng)易

Java 社招

Java基礎(chǔ)

1.手撕代碼。牛客題霸()上的原題,可以去看看:NC20數(shù)字字符串轉(zhuǎn)化成IP地址

2.定義Integer x=20 Integer y=200 在內(nèi)存里是個什么過程?

3.volite關(guān)鍵字的原理?它能保證原子性嗎?AtomicInteger底層怎么實現(xiàn)的?

4.threadLocal關(guān)鍵字有用過嗎?如果沒有重寫initialValue方法就直接get會怎樣?

5.hashMap與concurrentHashMap原理和區(qū)別?

6.hashMap什么情況下會出現(xiàn)循環(huán)鏈表?concurrentHashMap寫的時候用什么鎖?7.RenteenLock底層是怎么保證線程安全的?

8.反射能獲取到父類的私有方法嗎?怎么防止反射破壞單例模式?

9.描述下JVM內(nèi)存模型。每個區(qū)的作用是什么?堆內(nèi)存的工作原理,為什么需要兩個幸存區(qū)?只有一個行不行?老生代是用什么垃圾回收算法

10.怎么創(chuàng)建一個線程池,傳入的參數(shù)分別什么含義?線程池是怎么實現(xiàn)維持核心線程數(shù)的?怎么實現(xiàn)一個自定義的拒絕策略?

10.描述下多線程原理。怎么開啟一個線程?start和run方法有什么區(qū)別?

10.怎么創(chuàng)建一個線程池,傳入的參數(shù)分別什么含義?線程池是怎么實現(xiàn)維持核心線程數(shù)的?怎么實現(xiàn)一個自定義的拒絕策略?

11.Socket編程 nio(這一塊我不太熟就說沒了解過,面試官就沒細(xì)問了)

開源框架

1.你用過哪些開源框架?最熟悉的是哪個?(這里我說了spring,所以后邊的問題都是圍繞spring的)

2.描述下spring的ioc和aop。

你常用哪一種注入方式?BeanFactory和ApplicationContext有什么區(qū)別?你們項目()里用的哪個?說一下spring bean的生命周期。

AOP實現(xiàn)原理是什么?兩種動態(tài)代理實現(xiàn)原理?JDK動態(tài)代理為什么要實現(xiàn)接口?

3.spring task是怎么實現(xiàn)的?

4.spring事務(wù)你是怎么用的?加了@Transcational注解spring都做了哪些工作?怎么知道事務(wù)執(zhí)行成功了?

事務(wù)隔離級別?mysql默認(rèn)級別是什么?事務(wù)傳播屬性?spring默認(rèn)是什么?嵌套事務(wù)子事務(wù)什么時候commit?

5.spring和springMVC是什么關(guān)系?有沒有用過JdbcTemplate?

6.springMVC中對整個請求的處理流程是怎樣的?返回json的話是用哪個view?

網(wǎng)絡(luò)相關(guān)

1.HTTP 1.1版本增加了哪些內(nèi)容?有哪幾種請求方式?

2.描述下HTTP三次握手和四次揮手過程?為什么需要四次揮手?為什么TIME_WAIT狀態(tài)需要經(jīng)過兩個最大報文段生存時間才能到close狀態(tài)?

3.瀏覽器發(fā)起一個請求到收到響應(yīng)中間經(jīng)歷了哪些過程?知道多少就說多少,越詳細(xì)越好。

Nginx相關(guān)

1.nginx有哪些模塊?你比較熟悉哪個?

2.proxy_cache你是怎么配置的?緩存是存在哪里?具體是怎么命中緩存的?

簡歷里有寫nginx,結(jié)果問得幾個問題我都沒答好,面試官就沒再多問了,囧~

數(shù)據(jù)庫相關(guān)

1.mysql索引是怎么實現(xiàn)的?b+樹有哪些特點?真實的數(shù)據(jù)存在哪里?

2.哪些情況下建索引?解釋下最左匹配原則?

現(xiàn)在一個表有三列a b c,組合索引(a,b,c)查詢的時候where a like ? and b=? and c=?能用到這個組合索引嗎?為什么?

3.explain執(zhí)行計劃看過沒有?其中type字段都有哪些值?分別代表什么?

4.你有哪些sql調(diào)優(yōu)經(jīng)驗?

Redis相關(guān)

1.redis有哪幾種數(shù)據(jù)結(jié)構(gòu)?給你一個key怎么知道是用的哪種結(jié)構(gòu)?

2.怎么查看所有的key?redis怎么切換庫?怎么清數(shù)據(jù)?

3.描述下redis淘汰策略?如果沒有數(shù)據(jù)可以淘汰活著沒有配置淘汰策略讀請求可以正常執(zhí)行嗎?

4.你們項目里redis是單節(jié)點的嗎?如果多節(jié)點怎么同步?

5.項目里用redis存哪些數(shù)據(jù)?為什么用redis?和jetty本地緩存有什么區(qū)別?

Linux相關(guān)

1.怎么查看某個進程中的線程?

2.怎么批量替換一個文件夾下所有文件中的一個字符?(sed命令)

3.有沒有用過jps jmap jstack jstat 命令,分別說下有哪些常用參數(shù),知道多少就說多少。

我這里結(jié)合自己用jmap jstack定位到線上問題的經(jīng)驗說的,答完后感覺面試官挺滿意的,所以說實踐很重要啊~

情景模擬&其他

1.設(shè)計一個系統(tǒng),每天有100億條數(shù)據(jù),需要在后臺做實時展示和查找。

我當(dāng)時回答的大體思路是nginx負(fù)載均衡,消息隊列存儲,多線程讀取,批量插入,數(shù)據(jù)庫分庫分表。

面試官根據(jù)我的回答又衍生出了很多問題,如消息隊列存滿了怎么辦?(也就是消費跟不上生產(chǎn))批量插入時某一條失敗了有什么影響?怎么解決?分庫分表應(yīng)該怎么分?怎么解決數(shù)據(jù)遷移的問題?

2.用代碼實現(xiàn)cat 1.log |grep a |sort |uniq -c |sort -rn 的功能。

3.手撕代碼。牛客題霸上的原題,可以去看看:NC127 最長公共子串

4.如果現(xiàn)在有一臺服務(wù)器突然變得很慢,怎么去定位問題?

曹操出行

社招 Java 3年工作經(jīng)驗

  • JUC 里的 ReentrantLock 和 synchronized 有什么區(qū)別?(實現(xiàn)方式)
  • 講講對 AQS 的理解(AQS 的實現(xiàn)原理)
  • 什么是 CAS?
  • synchronized 和 CAS 的區(qū)別?
  • CAS 有什么問題?
  • 線程池的原理?
  • 線程池中什么情況下會創(chuàng)建非核心線程?
  • 線程池中什么情況下會觸發(fā)拒絕策略?
  • Java 堆的結(jié)構(gòu)
  • 如果發(fā)生 OOM 如何排查解決?
  • 新生代用什么GC算法?GC過程?
  • 老年代用什么GC算法?GC過程?
  • G1垃圾回收器的特點
  • 聊聊對事務(wù)的理解(什么是事務(wù)?事務(wù)的特性?)
  • 事務(wù)的隔離級別
  • InnoDB 和 MyISAM 的區(qū)別?
  • 如何優(yōu)化慢 SQL?
  • 一億的表,很多復(fù)雜的查詢條件,查第一萬頁,如何優(yōu)化?分庫分表查詢過程?
  • 二階段、三階段、TCC、seata
  • RocketMQ / Kafka 的存儲原理
  • Netty
  • Dubbo 原理
  • 如果注冊中心掛了,消費者還能連上提供者嗎?為什么?
  • Dubbo 的 SPI 機制
  • 基于 Dubbo 能做什么擴展?
  • Dubbo 負(fù)載均衡算法
  • 選一個重點項目講講,設(shè)計、問題等等

京東

**1、手撕代碼。牛客題霸上的原題,可以去看看:**NC3鏈表中環(huán)的入口節(jié)點

**2、**Redis 的數(shù)據(jù)結(jié)構(gòu)及使用場景

(1)String字符串:字符串類型是 Redis 最基礎(chǔ)的數(shù)據(jù)結(jié)構(gòu),首先鍵都是字符串類型,而且 其他幾種數(shù)據(jù)結(jié)構(gòu)都是在字符串類型基礎(chǔ)上構(gòu)建的,我們常使用的 set key value 命令就是字符串。常用在緩存、計數(shù)、共享Session、限速等。

(2)Hash哈希:在Redis中,哈希類型是指鍵值本身又是一個鍵值對 結(jié)構(gòu),添加命令:hset key field value。哈希可以用來存放用戶信息,比如實現(xiàn)購物車。

(3)List列表(雙向鏈表):列表(list)類型是用來存儲多個有序的字符串。可以做簡單的消息隊列的功能。

(4)Set集合:集合(set)類型也是用來保存多個的字符串元素,但和列表類型不一 樣的是,集合中不允許有重復(fù)元素,并且集合中的元素是無序的,不能通過 索引下標(biāo)獲取元素。利用 Set 的交集、并集、差集等操作,可以計算共同喜好,全部的喜好,自己獨有的喜好等功能。

(5)Sorted Set有序集合(跳表實現(xiàn)):Sorted Set 多了一個權(quán)重參數(shù) Score,集合中的元素能夠按 Score 進行排列。可以做排行榜應(yīng)用,取 TOP N 操作。

3、zset跳表的數(shù)據(jù)結(jié)構(gòu)

4、ZAB協(xié)議

ZAB協(xié)議包括兩種基本的模式:崩潰恢復(fù)和消息廣播。當(dāng)整個 Zookeeper 集群剛剛啟動或者Leader服務(wù)器宕機、重啟或者網(wǎng)絡(luò)故障導(dǎo)致不存在過半的服務(wù)器與 Leader 服務(wù)器保持正常通信時,所有服務(wù)器進入崩潰恢復(fù)模式,首先選舉產(chǎn)生新的 Leader 服務(wù)器,然后集群中 Follower 服務(wù)器開始與新的 Leader 服務(wù)器進行數(shù)據(jù)同步。 當(dāng)集群中超過半數(shù)機器與該 Leader 服務(wù)器完成數(shù)據(jù)同步之后,退出恢復(fù)模式進入消息廣播模式,Leader 服務(wù)器開始接收客戶端的事務(wù)請求生成事物提案來進行事務(wù)請求處理。

5、volatile作用

(1)volatile在多處理器開發(fā)中保證了共享變量的“ 可見性”。可見性的意思是當(dāng)一個線程修改一個共享變量時,另外一個線程能讀到這個修改的值。(共享內(nèi)存,私有內(nèi)存)

(2)volatile關(guān)鍵字通過“內(nèi)存屏障”來防止指令被重排序。

1、手撕代碼。牛客題霸上的原題,可以去看看:NC116把數(shù)字翻譯成字符串

2、進程的組成部分

進程由進程控制塊(PCB)、程序段、數(shù)據(jù)段三部分組成。

3、Redis的應(yīng)用場景

(1)緩存

(2)共享Session

(3)消息隊列系統(tǒng)

(4)分布式鎖

4、單線程的Redis為什么快?

(1)純內(nèi)存操作

(2)單線程操作,避免了頻繁的上下文切換

(3)合理高效的數(shù)據(jù)結(jié)構(gòu)

(4)采用了非阻塞I/O多路復(fù)用機制

5、事務(wù)的基本要素**(事務(wù)特性)**

(1)原子性:事務(wù)是一個原子操作單元,其對數(shù)據(jù)的修改,要么全都執(zhí)行,要么全都不執(zhí)行

(2)一致性:事務(wù)開始前和結(jié)束后,數(shù)據(jù)庫的完整性約束沒有被破壞。

(3)隔離性:同一時間,只允許一個事務(wù)請求同一數(shù)據(jù),不同的事務(wù)之間彼此沒有任何干擾。

(4)持久性:事務(wù)完成后,事務(wù)對數(shù)據(jù)庫的所有更新將被保存到數(shù)據(jù)庫,不能回滾。

6、CAP定理

一個分布式系統(tǒng)不可能同時滿足以下三種,一致性,可用性,分區(qū)容錯性。在此ZooKeeper保證的是CP,ZooKeeper不能保證每次服務(wù)請求的可用性,在極端環(huán)境下,ZooKeeper可能會丟棄一些請求,消費者程序需要重新請求才能獲得結(jié)果。 另外在進行l(wèi)eader選舉時集群都是不可用,所以說,ZooKeeper不能保證服務(wù)可用性。

7、HashMapConcurrentHashMap區(qū)別

(1)由于HashMap是線程不同步的,雖然處理數(shù)據(jù)的效率高,但是在多線程的情況下存在著安全問題,因此設(shè)計了CurrentHashMap來解決多線程安全問題。

(2)HashMap在put的時候,插入的元素超過了容量(由負(fù)載因子決定)的范圍就會觸發(fā)擴容操作,就是rehash,這個會重新將原數(shù)組的內(nèi)容重新hash到新的擴容數(shù)組中,在多線程的環(huán)境下,存在同時其他的元素也在進行put操作,如果hash值相同,可能出現(xiàn)同時在同一數(shù)組下用鏈表表示,造成閉環(huán),導(dǎo)致在get時會出現(xiàn)死循環(huán),所以HashMap是線程不安全的。

8、Kafka判斷一個節(jié)點還活著的兩個條件

(1)節(jié)點必須可以維護和 ZooKeeper 的連接,Zookeeper 通過心跳機制檢查每個節(jié)點的連接

(2)如果節(jié)點是個 follower,他必須能及時的同步 leader 的寫操作,延時不能太久。

百度

社招 JAVA 1年

1、 NC16 判斷二叉樹是否對稱

2、NC32 求平方根

3、NC2 重排鏈表

騰訊

社招 JAVA 2年

騰訊一面:(總耗時:120min)

1、jvm內(nèi)存結(jié)構(gòu)介紹、代碼調(diào)用過程中的內(nèi)存流程;
2、java如何分配內(nèi)存,多線程呢?
3、Spring如何加載注解
4、Spring啟動流程、bean實例化
5、xxljob原理,使用流程
6、OOM定位、解決方式,流程
7、講項目xxxxx
8、redis pipline是全雙工還是半雙工
9、云原生是什么?(這個真不會)
10、rabbitMQ原理、流程、用途
11、rabbitMQ如何保證數(shù)據(jù)到達
12、Http 1.0 1.1 2.0
13、注解使用、如何掃描
14、cas原理,緩存一致性原理(volatile、synchronized、可見性)
15、gc算法、掃描算法(優(yōu)劣)、內(nèi)存分區(qū)
16、jedis是否使用鏈接池,如何處理有序數(shù)據(jù)

算法:
go代碼求輸出(面試官讓我按自己理解猜…)
leetcode 74. 搜索二維矩陣
leetcode 鏈表反轉(zhuǎn)

騰訊二面面經(jīng):(總耗時:100min)
1、項目簡述(blablabla…);
2、MQ選型;(RocketMQ、ZeroMQ、Kafka、RabbitMQ優(yōu)缺點)
3、消息可靠性保證;(數(shù)據(jù)冪等、高可用鏡像集群、Confirm機制、事務(wù)機制、持久性)
4、Redis類型及源碼簡述;(String、Hash、ZSet、Set、Dict、GEO、HyperLogLog、BloomFilter、Stream、Bitmap等)
5、MySql和MongoDB區(qū)別;( blablabla)
6、JVM中如何掃描對象;(root、hotspot算法、cardTable)
7、GC算法;(復(fù)制、標(biāo)記清除、標(biāo)記整理、內(nèi)存碎片及解決方式)
8、代碼運行流程對應(yīng)JVM內(nèi)部流程;(幾個關(guān)鍵字:棧楨、操作數(shù)棧、)
9、紅黑樹;(這個簡單,自己吹牛逼…;紅黑節(jié)點、特性等)
10、線程&協(xié)程;(blabla…)
11、阻塞IO、非阻塞IO、同步IO、異步IO、IO多路復(fù)用(區(qū)別及內(nèi)部流程、用戶態(tài)內(nèi)核態(tài)blablabla…);
12、死鎖及打破方式;(互斥、請求與保持、循環(huán)等待、阻塞;超時、銀行家算法)
13、一致性Hash算法詳解;(熱點分布、2的31個槽、虛擬節(jié)點等)
14、看什么書;(隨便挑一本,開始背書)
15、對c++和java看法;(吹牛逼,吹到面試官high點)
16、自己技術(shù)發(fā)展方向;(技術(shù)or管理)
17、讀過什么組件源碼;(redis、JVM、MyBatis、Spring及相關(guān)基本都讀過、sharding-jdbc等)
18、隨便講個源碼組件源碼結(jié)構(gòu)及內(nèi)部核心原理;(redis、MyBatis等吹牛逼)

算法:
a、鏈表相加;
b、leetcode 1567 乘積為正數(shù)的最長子數(shù)組長度;(滑動窗口、貪心分治法求解)

阿里巴巴

兩輪面試都是電面。

一面總體上還是圍繞項目架構(gòu)、Java基礎(chǔ)、JVM、并發(fā)編程、數(shù)據(jù)庫操作、中間件技術(shù)和Dubbo服務(wù)治理框架等展開,可能因為是云安全部門,有一半時間在考察JVM,還提問了一些編譯優(yōu)化的知識。

一面結(jié)束后很快安排了二面,相對一面,二面的問題更深入,問題比較刨根問底,更加注重對一些技術(shù)細(xì)節(jié)的理解和把握。比如數(shù)據(jù)庫操作,面試官會詳細(xì)的問你數(shù)據(jù)庫插入和刪除一條數(shù)據(jù)的過程在底層是如何執(zhí)行的,項目里配置了讀寫分離,也會比較深入的就實現(xiàn)方法和底層邏輯展開討論。

面試問題:

1、JVM內(nèi)存分代。

2、Java 8的內(nèi)存分代改進。

3、深入分析了Classloader,雙親委派機制。

4、JVM的編譯優(yōu)化。

5、對Java內(nèi)存模型的理解,以及其在并發(fā)中的應(yīng)用。

6、指令重排序,內(nèi)存柵欄等。

7、HashMap的并發(fā)問題。

8、了解LinkedHashMap的應(yīng)用嗎?

9、在工作中遇到過哪些設(shè)計模式,是如何應(yīng)用的?

愛奇藝

愛奇藝的面試都是二對一,每輪面試兩個面試官。

一面比較順利,主要是Java基礎(chǔ),Spring原理,Java NIO,并發(fā)和集合框架等,可能是因為視頻網(wǎng)站,愛奇藝考察網(wǎng)絡(luò)原理的知識多,比如TCP/IP協(xié)議、長連接與短連接等。

一面提到了自己可能會在下半年學(xué)習(xí)大數(shù)據(jù)與機器學(xué)習(xí)相關(guān)的知識,二面就在這上面栽了跟頭,問了很多海量數(shù)據(jù)的問題。

面試問題:

1、手撕代碼。牛客題霸上的原題,可以去練練:NC22合并兩個有序的數(shù)組。

2、TCP/IP協(xié)議。

3、長連接與短連接。

4、mapreduce過程。

5、多路歸并的時間復(fù)雜度。

6、海量url去重類問題。

7、Java NIO使用。

7、倒排索引的原理。

8、對分詞技術(shù)的了解。

面試中給了一個具體場景,考察對MapReduce過程的理解,比如Map階段和Reduce階段是如何進行的等,Reduce階段面試官希望分析給出一個多路歸并的時間復(fù)雜度,用外排序的知識簡單分析了一下,回答的不太好。回來以后搜索了勝者樹和敗者樹的優(yōu)化,發(fā)現(xiàn)這里面的內(nèi)容還挺多, 深刻體會到有些知識點如果平時掌握的不夠全面深刻,很難信手拈來 。

字節(jié)跳動

JAVA 1年

一面:
1、final是干嘛的,用在什么地方,你們項目中有用到過嗎

2、有那些集合,一個一個說linkedlist,arraylist,hashmap

3、說一下hashmap基本結(jié)構(gòu),和hashmap的擴容,hashmap的并發(fā)

4、說一下jvm的垃圾回收器,有那些,算法有哪些,他們的優(yōu)缺點

5、線程池用過嗎?用來干什么?說一下線程池。

6、做過sql優(yōu)化嗎(我簡歷上寫了),說一下吧。

7、mysql的索引說一下,b+樹的優(yōu)缺點

8、說一下dubbo的架構(gòu)(簡歷上有寫)

9、說一下kafka的topic,partition,broker概念

10、kafka的主從選舉機制

11、redis用過嗎?有哪些數(shù)據(jù)類型,常用什么數(shù)據(jù)類型?我有說zset,那說一下zset的底層原理吧

12、linux中你用哪些命令

13、linux中想看一個文件中某個關(guān)鍵字出現(xiàn)的次數(shù)(我不會,后面還會問到。。)

15、做題:leetcode56題,合并區(qū)間。

二面:

直接先做題:leetcode70 跳臺階,這個我做過所以寫的很快,還說了下遞歸和動態(tài)規(guī)劃的優(yōu)缺點,

然后特別,面試官發(fā)給了一個飛書文檔的連接,上面有很多實際的問題,大致有這些:

1、給一個實習(xí)生寫的代碼,請指出他的問題

2、給定一個訂單和商品的要求,請設(shè)計表結(jié)構(gòu),然后有三個問題,分別寫3條sql來。根據(jù)聯(lián)合索引來設(shè)計索引。

3、接著第二題,用redis來存儲上面問題查詢出來的結(jié)果,該怎么寫redis

然后:

1、問一個之前問過你當(dāng)時你沒回答上來的: linux中想看一個文件中某個關(guān)鍵字出現(xiàn)的次數(shù),嘻嘻,那天面試完我去百度了!

2、說一下redis的主從復(fù)制,緩沖區(qū)大小,超過緩沖區(qū)大小怎么辦?

3、tcp三次握手,為什么三次,為什么四次

4、tcp快速恢復(fù),快速啟動,慢啟動

5、進程和線程的區(qū)別(這一部分沒細(xì)問,他說看你是搞java,如果是搞c的會問的更加深入。)

我算法題做的比較快,問完上面的問題后就花了30分鐘,面試官看太快了,就說你還有什么比較拿手的,我就說了說我做過一點mysql的治理。然后又聊了10分鐘

三面:

直接先做題:合并兩個有序鏈表。。

1、你做過哪些項目?

2、說一個你覺得難度最大的項目,你是怎么解決技術(shù)難點問題的。

3、你做過微服務(wù)項目嗎?用的什么技術(shù)?

4、你說一下springcloud 的 hytrix的原理是什么?

5、說一下dubbo的原理。

6、用過redis嗎,項目中怎么用的。

7、知道微服務(wù)網(wǎng)格嗎,知道微服務(wù)治理嗎?

8、你的優(yōu)點和缺點

搜狐

做了筆試題,一面針對筆試和簡歷提問了一些基礎(chǔ)問題。

二面技術(shù)經(jīng)理就比較偏架構(gòu)和中間件的應(yīng)用,提問了項目,主要考察了服務(wù)治理和消息隊列等中間件使用的問題。

面試問題:

1、手撕代碼。牛客題霸上的原題,可以去看看:NC63撲克牌順子。

2、消息中間件如何解決消息丟失問題

3、Dubbo的服務(wù)請求失敗怎么處理

4、重連機制會不會造成錯誤

5、對分布式事務(wù)的理解

6、深入分析幾個設(shè)計模式

面試最后提問了一個不定長字符串轉(zhuǎn)為定長字符串的問題,這個簡單的問題被我想復(fù)雜了,沒有Get到面試官的點,考慮了唯一性,性能等,扯了一大堆。

也提醒一下大家,面試過程中要保持清醒,不要有思維定式,除非是底層研發(fā)崗位,社招對算法的考察不會特別難,用正常的思路去解決就可以。

58同城

三輪技術(shù)面,大部分是實際場景的算法和系統(tǒng)設(shè)計類問題。

面試問題:

1、HTTP請求的報文格式Spring的事務(wù)實現(xiàn)原理

2、實際場景問題,大量用戶數(shù)據(jù)如何在內(nèi)存中排序和去重

3、緩存機器增刪如何對系統(tǒng)影響最小,一致性哈希的實現(xiàn)

4、Redis持久化的幾種方式

5、Redis的緩存失效策略

7、實際場景問題解決,典型的TOP K問題

8、實際場景問題,海量登錄日志如何排序和處理SQL操作,主要是索引和聚合函數(shù)的應(yīng)用

國美在線

做了一份筆試題,主要考察Java基礎(chǔ),數(shù)據(jù)庫,設(shè)計模式以及數(shù)據(jù)結(jié)構(gòu),要求寫出B-Tree的節(jié)點結(jié)構(gòu),算法題目是一道等概率抽獎的題目,用蓄水池抽樣算法解決了。

面試問題:

1、SQL語句編寫。

2、MySQL的幾種優(yōu)化。

3、Spring行級鎖。

4、Spring衍生的相關(guān)其他組件整理。

5、RMI的幾種協(xié)議和實現(xiàn)框架。

6、BTree相關(guān)的操作。

7、數(shù)據(jù)庫鎖表的相關(guān)處理。

8、考察跳臺階問題。

另外面試過程中詢問了一些工作中用到框架和組件的版本等細(xì)節(jié)問題,平時沒太關(guān)注,后來思考了一下,對開源組件的應(yīng)用,版本的管理很重要。

小米

1.MySQL or查詢能使用索引嗎,為什么能或者不能,說出原理?
2.如何實現(xiàn)cookie跨域?非子域名
3.兩個文件a,b,a中包含b中所有的文件行,b中包含a中所有的文件行,滿足這兩個條件a和b相等,怎么用程序來實現(xiàn)?
4.二維求組,由a【0】【0】到a【n】【n】會有多少種情況,只考慮從左到右,從上到下
5.多臺服務(wù)器,一個域名,客戶端請求到具體某一臺服務(wù)器的全過程,盡可能的細(xì)
6.如何提取具有一定規(guī)則的日志行,并做技術(shù)統(tǒng)計

去哪兒

1.手撕代碼。牛客上的原題,可以去看看:NC13**二叉樹的最大深度。**

2.JVM內(nèi)存查看與分析,編寫內(nèi)存泄露實例

3.線上CPU100%,如何定位和排查問題

4.如何在運行時確定對象類型?

5.引用傳遞和值傳遞

6.類加載過程,如何獲得當(dāng)前對象的****ClassLoader

7.Git操作,Maven多[項目]聚合

8.10萬個ip段如何快速查找

**9.Java內(nèi)存模型,volatile和****i++**的線程安全

10.線程池實現(xiàn)原理,Lock機制的實現(xiàn)

(1)其實java線程池的實現(xiàn)原理很簡單,說白了就是一個線程集合workerSet和一個阻塞隊列workQueue。當(dāng)用戶向線程池提交一個任務(wù)(也就是線程)時,線程池會先將任務(wù)放入workQueue中。workerSet中的線程會不斷的從workQueue中獲取線程然后執(zhí)行。當(dāng)workQueue中沒有任務(wù)的時候,worker就會阻塞,直到隊列中有任務(wù)了就取出來繼續(xù)執(zhí)行。

11.JVM對final關(guān)鍵字的編譯優(yōu)化

12.ConcurrentHashMap深入分析

13.HashMap和HashSet的使用

14.Synchronized和Lock的使用

15.Dubbo底層實現(xiàn),Dubbo相比webservice等方式的優(yōu)勢

16.設(shè)計模式,服務(wù)治理等

17.Spring動態(tài)加載數(shù)據(jù)源

18.Spring boot應(yīng)用

19.Spring中的設(shè)計模式

(1)簡單工廠模式:實質(zhì)是由一個工廠類根據(jù)傳入的參數(shù),動態(tài)決定應(yīng)該創(chuàng)建哪一個產(chǎn)品類。

(2)工廠方法模式:通常由應(yīng)用程序直接使用new創(chuàng)建新的對象,為了將對象的創(chuàng)建和使用相分離,采用工廠模式,即應(yīng)用程序?qū)ο蟮膭?chuàng)建及初始化職責(zé)交給工廠對象。

(3)單例模式:保證一個類僅有一個實例,并提供一個訪問它的全局訪問點。

(4)適配器模式;

(5)包裝器模式:spring中用到的包裝器模式在類名上有兩種表現(xiàn):一種是類名中含有Wrapper,另一種是類名中含有Decorator。基本上都是動態(tài)地給一個對象添加一些額外的職責(zé)。

(6)代理模式:為其他對象提供一種代理以控制對這個對象的訪問。

(7)觀察者模式:定義對象間的一種一對多的依賴關(guān)系,當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于它的對象都得到通知并被自動更新。

(8)策略模式:定義一系列的[算法],把它們一個個封裝起來,并且使它們可相互替換。本模式使得[算法]可獨立于使用它的客戶而變化。

20.Linux的常用命令,簡單shell編寫

21.Linux系統(tǒng)監(jiān)控命令

22.Redis的持久化方式

23.緩存和數(shù)據(jù)庫的一致性問題

24.Redis、MongoDBMemcached的區(qū)別

25.Solr和Lucene,中文分詞技術(shù)

26.爬蟲的深搜和廣搜,隊列和棧

27.數(shù)據(jù)庫索引的實現(xiàn),B+樹的結(jié)構(gòu)和操作,為什么不用紅黑樹

28.SQL表設(shè)計 Join****操作

29.數(shù)據(jù)庫范式,聚集索引與非聚集索引

30.數(shù)據(jù)庫存儲過程,SQL注入

快手

社招 高級Java開發(fā)

1、NC113 驗證IP地址

2、NC78 反轉(zhuǎn)鏈表

3、NC121 字符串的排列


跟我一起學(xué)習(xí)進大廠吧,后面我把面試題答案講解整理發(fā)布,敬請持續(xù)關(guān)注。
QQ群【837324215】
關(guān)注我的公眾號【Java大廠面試官】,回復(fù):架構(gòu)資源等關(guān)鍵詞(更多關(guān)鍵詞,關(guān)注后注意提示信息)獲取更多免費資料。

公眾號也會持續(xù)輸出高質(zhì)量文章,和大家共同進步。

總結(jié)

以上是生活随笔為你收集整理的2020年11月最新互联网大厂面试经验分享【网易、阿里、腾讯、京东、百度、爱奇艺、字节、小米、美团、搜狐、58】的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。