鬥魚研發面經

鬥魚研發面經

本文首發於微信公衆號:程序員江湖

鬥魚武漢

Java開發工程師(大數據方向)

1

一週前鬥魚約了面試,公司就在學校旁邊,於是過去面試,2點到5點半。

現場面試體驗還不錯,辦公室挺擁擠的,面試比想象中要難。

先做了一套筆試題,然後三輪面試。

筆試:

1 基本數據類型和引用數據類型的區別

2 靜態成員變量和非靜態成員變量的區別

3 Java的接口,抽象類,和普通類的區別。

4 字節流和字符流有什麼區別,分別用哪個接口

5 忘了

6 兩個線程A,B。A要等待B運行完(或者A超時10秒)再運行

7 兩個表A,B。A表有姓名,課程,得分,B表有課程,比重。

要求班裏課程得分*比重總和在60-70,71-80,81-90,90-100的人所佔全班的比例。

8 JS題

9 一個字符串,前半段反轉,後半段也反轉,然後輸出。

10 一個無序數組,變成有序數組,並且刪除重複數字

一面:

1 項目

2 爲什麼用chm

3 hashmap的線程安全問題

4 線程池結構,阻塞隊列看過源碼嗎,array阻塞隊列的原理,怎麼實現的,這邊的put答錯了,事實上不用移動數組。

5 jmm內存模型瞭解過嗎,說了工作內存和主內存,順便說了volatile,不能保證線程安全。

6 spring說一下,老樣子ioc和aop,問我bean爲什麼是單例的,是否線程安全,怎麼讓接口指定實現類。bean容器的實現原理,解析過程,問我這塊是在哪裏看的,我說博客。

7 hibenate的作用,原理,有什麼問題。

8 mysql的SQL語句優化怎麼做,有哪些情況用不到索引。怎麼優化

9 redis的緩存穿透怎麼解決,如果是無效請求怎麼辦。

10 消息隊列了解麼,主要有什麼作用。

11 zk瞭解麼。

12 寫一個雙重檢查的double check,忘記寫構造函數了,尷尬。

二面:

1 項目

2 MySQL建表實現目錄樹的結構,怎麼做。

3 怎麼查這個目錄下的一級節點呢

4 把目錄節點寫成一個類,讓我寫一個遍歷所有子節點的方法。

5 寫一個hashmap的get和put方法,稍微寫了一點點基本結構,我說後續太複雜了,他就沒問了。

6 nginx做負載均衡,它管理的Tomcat服務器怎麼管理session實現共享,我說使用數據庫和緩存。

7 nginx單點故障怎麼辦,做集羣,那麼集羣怎麼讓客戶端知道要訪問哪一個IP。我說讓本地dns服務器來選擇。

8 集合類的幾個問題

9 docker和k8s說一下。

10 直播技術瞭解麼。

三面:

1 平時怎麼學習的

2 哪些書你印象深刻

3 實習的收穫哪家公司更大一點

4 遇到困難怎麼克服

5 新的技術怎麼去學習

6 Java web的發展瞭解麼,這些框架是怎麼演變的,springboot呢,其中的區別呢。spring容器的原理,mvc容器的初始化,以及內部數據結構是什麼樣的。

7 docker和k8s怎麼學習的,有什麼好處。

8 平時還學了哪些技術,對未來發展怎麼規劃

9 有什麼問題

▼更多精彩內容

今日頭條研發面經

螞蟻金服研發面經

百度研發面經整合版

拼多多&快手研發面經

美團&京東研發面經

更多校招乾貨請關注公衆號:程序員江湖!

喜歡記得來一個

<script>$(".MathJax").remove(); if($('div.markdown_views pre.prettyprint code.hljs').length > 0 ){ $('div.markdown_views')[0].className = 'markdown_views'; }</script> <script>(function(){ function setArticleH(btnReadmore,posi){ var winH = $(window).height(); var articleBox = $("div.article_content"); var artH = articleBox.height(); if(artH > winH*posi){ articleBox.css({ 'height':winH*posi+'px', 'overflow':'hidden' }) btnReadmore.click(function(){ articleBox.removeAttr("style"); $(this).parent().remove(); }) }else{ btnReadmore.parent().remove(); } } var btnReadmore = $("#btn-readmore"); if(btnReadmore.length>0){ if(currentUserName){ setArticleH(btnReadmore,3); }else{ setArticleH(btnReadmore,1.2); } } })()</script>

[](https://nbrecsys.4paradigm.co...

--------------------- 本文來自 How_2_Play_Life 的CSDN 博客 ,全文地址請點擊:https://blog.csdn.net/a724888...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章