秋招 百度二轮面试---血淋淋的经历写实
一名自信向上的良好青年,參加百度面試被面試官按在地板來回摩擦~
簡單回顧一下,面試的經歷吧
百度二面對話大概是這樣的。
面:這個知道嗎?
我:不知道。
面:這個呢?
我:不知道。
面:那我問你這個吧。
我:知道。
面:看過源碼嗎,底層是怎么實現的?【【底層原理】Linux進程及其調度策略】
我:。。。。。。
面:好吧,下一個問題
場面巨尷尬
下面是具體的問題,可能有忘記的題.沒有自我介紹..
1,安卓源碼看過多少
有時候看到某個函數,心血來潮可能會點進去看看是如何實現的,但是沒有集體性看過.
2,RecyclerView怎么實現的?不知道啊,那你說說是怎么用的?
怎么實現的,我是真的沒有一個大體的認識,之前沒去集體看過RecyclerView的源碼,最多只是知道幾個方法是怎么實現的.怎么用的我就不說了,大家都比我清楚.
源碼分析可以看看大神的文章搭配起看看源碼吧:【Java實現貪吃蛇小游戲(附完整源碼)】
RecyclerView源碼分析(一)–整體設計
http://www.jianshu.com/p/9ddfdffee5d3
RecyclerView源碼分析(二)–測量流程?
http://www.jianshu.com/p/4b8d6e5004d5
RecyclerView源碼分析(三)–布局流程?
http://www.jianshu.com/p/898479f103b6
RecyclerView源碼分析(四)–動畫流程
http://www.jianshu.com/p/f7f8814bd09a
3,線程池,用過嗎?
我:聽說過,沒用過.
看看大神的文章吧【Java后端技術從0到1路線,一步步走向大神!】
Android開發——Android中常見的4種線程池(保證你能看懂并理解)
http://blog.csdn.net/seu_calvin/article/details/52415337
4,Service和IntentService區別
推薦文章:
Android中IntentService與Service的區別
http://blog.csdn.net/matrix_xu/article/details/7974393
4.1,service的啟動方式有幾種,分別是什么?生命周期有什么區別?多次調用startService()會啟動多個Service嗎?bindServive呢?
如果一個 Service 已經被啟動,其他代碼再試圖調用 startService() 方法,是不會執行 onCreate() 的,但會重新執行一次 onStartCommand()【為什么不應該重寫service方法?】
看我的Github筆記了解具體詳情:
https://github.com/xfhy/notes/blob/master/Android/Android學習筆記/四大組件/Service%20服務.md
5,TreeMap干什么的,怎么用
說實話,我平時確實沒怎么用過這個,除了當時在學習時.就是一個排序的?
馬克-to-win:TreeSet是按升序順序輸出的。TreeMap也是按升序輸出,但是和它的區別就是TreeSet存儲的是單個元素,而TreeMap存儲的是一個一個的鍵值對。
http://www.mark-to-win.com/JavaBeginner/JavaBeginner7_web.html#DefinitionUsageOfTreeMap
6,實現單鏈表倒置,手寫【Redis實現的分布式鎖和分布式限流】
7,二叉樹后序遍歷,手寫
8,新開一個線程和開一個IntentService有什么區別。假如系統內存不足,誰先被干掉?
(1)前臺進程
是用戶操作所必須的,任一時間下,僅有少數進程會處于前臺,這樣的進程擁有一個在屏幕上顯示并和用戶交互的 activity 或者它的一個IntentReciver 正在運行。僅當內存實在無法供給它們維持同時運行時才會被殺死。一般來說,在這種情況下,設備依然處于使用虛擬內存的狀態,必須要殺死一些前臺進程以用戶界面保持響應?!尽镜讓釉怼縇inux進程及其調度策略】
(2)可視進程
沒有前臺組件,但仍可被用戶在屏幕上所見。當滿足如下任一條件時,進程被認為是可視的:
●它包含著一個不在前臺,但仍然為用戶可見的activity(它的onPause()方法被調用)。這種情況可能出現在以下情況:比如說,前臺activity是一個對話框,而之前的Activity位于其下并可以看到。
●它包含了一個綁定至一個可視的activity的服務。
可視進程依然被視為是很重要的,非到不殺死它們便無法維持前臺進程運行時,才會被殺死。
(3)服務進程
是由startService() 方法啟動的服務,它不會變成上述兩類。盡管服務進程不會直接為用戶所見,但它們一般都在做著用戶所關心的事情(比如在后臺播放mp3或者從網上下載東西)。所以系統會盡量維持它們的運行,除非系統內存不足以維持前臺進程和可視進程的運行需要。
(4)背景進程
包含目前不為用戶所見的activity(Activity對象的onStop() 方法已被調用)。這些進程與用戶體驗沒有直接的聯系,可以在任意時間被殺死以回收內存供前臺進程、可視進程以及服務進程使用。一般來說,會有很多背景進程運行,所以它們一般存放于一個LRU(最后使用)列表中以確保最后被用戶使用的activity最后被殺死。如果一個activity正確的實現了生命周期方法,并捕獲了正確的狀態,則殺死它的進程對用戶體驗不會有任何不良影響。
(5)空進程
不包含任何活動應用程序組件。這種進程存在的唯一原因是做為緩存以改善組件再次于其中運行時的啟動時間。系統經常會殺死這種進程以保持進程緩存和系統內核緩存之間的平衡。【面試常考!緩存三大問題及解決方案】
9,List和Set集合存放對象時的區別
10,說說你最擅長的領域,比如安卓中的某個東西,或者算法,數據結構,網絡。
11,說出你的優點和缺點。說說最值得你驕傲的事情。
12,關注最新的技術?說說學過Kotlin哪些東西?我:學過一些語法和寫過幾個demo。面:什么,就只是語法層?好吧,下一個問題
13,二分查找的時間復雜度
總共有n個元素,每次查找的區間大小就是n,n/2,n/4,…,n/2^k(接下來操作元素的剩余個數),其中k就是循環的次數。
由于n/2^k取整后>=1,即令n/2^k=1,
可得k=log2n,(是以2為底,n的對數),所以時間復雜度可以表示O()=O(logn)
14,Activity.OnNewIntent()解釋一下是什么?
Activity的四種啟動模式和onNewIntent()
http://blog.csdn.net/linghu_java/article/details/17266603
15,怎么利用handler實現主線程和子線程通信?MessageQueue是什么?子線程實現hander應該注意什么?
這個剛好知道.哈哈
16,ThreadLocal用過嗎?
徹底理解ThreadLocal【深入分析 ThreadLocal 內存泄漏問題】
http://blog.csdn.net/lufeng20/article/details/24314381/
17,HandlerThread用過嗎?
Android HandlerThread 完全解析
http://blog.csdn.net/lmj623565791/article/details/47079737/
18,Java中是怎么實現線程同步的?假如我定義一個類,里面有一個方法fa()被synchronized修飾了,另一個fb()沒有被修飾。現在聲明2個對象a1,a2,現在2個線程同時分別調用a1.fa(),a2.fb(),fb()方法中的代碼會被執行到嗎?
19,會反編譯嗎?我:用過,拿來反編譯其他的app。
20,你覺得你的安卓達到一個什么樣的水平了?
21,面:好了,還有什么想問的嗎?
22,回去等消息吧,待會兒HR小姐姐會聯系你。過了的話還有三面,大概在這周三。
總結
很多問題不會,場面蜜汁尷尬.好吧,本人菜鳥一枚….【如何準備校招技術面試+一只小菜鳥的面試之路】
下面是一個朋友(也是這場百度,二面)的問題
計算機網絡:
http協議概述,特點,運用,http為什么底層是tcp不是udp ?
tcp是基于流式傳輸的,怎么設計協議,進行協議的解析?
抓包工具的原理是啥?
socket異常斷開時,設計一個合理的重連機制。
數據結構:
叫我寫二叉樹的前序遍歷非遞歸,跟遞歸方式比較時間復雜度,快排的原理。
項目:
檢測內存泄漏的工具,它為什么能檢測?
做過的項目有什么技術難點(我說的難點在面試官看來都是簡單問題)?
思維題:
在很多的數據中如何快速找到最大的100個數?
你有什么創新能力?
你還有什么問題問我?
擴展閱讀
2018百度Java后端面試真題,你會幾個?
Java 面試題 :百度前 200 頁都在這里了
最終一輪面試被 Google 刷掉,這是一種什么樣的體驗?
最新Java面經 | 阿里2019實習內推 五輪技術面+一輪HR面
美團Java實習面試經歷(拿到Offer)
Java 面試題 —— 老田的螞蟻金服面試經歷
來源:https://blog.csdn.net/xfhy_/article/details/78024466
轉載于:https://www.cnblogs.com/javafirst0/p/10789417.html
總結
以上是生活随笔為你收集整理的秋招 百度二轮面试---血淋淋的经历写实的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 渗透测试-基于白名单执行payload-
- 下一篇: hbase 问题整理