天天點外賣,于是決定我跑去了餓了嗎,,

面試程序:
通過boss直聘網站找相應的職位,找到就申請了,
過了2天來電話了,是一個周六的早晨9點鐘,
電話面試問了 java基礎,redis,jdk,spring原理,mybatis,dubbo;
后來讓我去現場面,問了java記憶體相關,redis記憶體相關,最擅長的技術領域,,
電話面試的期間,面試官很有耐心的聽我講也不會突然打斷我的思路(感覺很舒適),
現場面試不得不說大廠還是大廠,就挺氣派的,公司看起來一切都是盡然有序,

面試官問的面試題:
技術人員一面
- 對于行程中鎖的理解,
- 解決死鎖的方法
- 網路的7層結構
- TCP/UDP的不同
- 三次握手
- 給定一個URL,如何訪問
- 堆疊和佇列的區別
- 鏈表,雙向鏈表,
架構師二面
Java的war檔案和jar檔案有什么不同,war檔案是怎么出現的
int 和 Integer 有什么區別,在這里問了很多,比如用什么比較才會給true的結果
Java里有哪些集合,后續又問了set和list的區別以及優缺點,還有tree
Java的記憶體結構,主要問堆和堆疊還有執行緒的資料是怎么在堆和堆疊里存盤的,堆疊的生存周期啥的
一、Activity的生命周期及描述;
這個問題都小兒科了,只要你記住那幾個方法,知道每個方法的作用就ok了,
二、MVC的作用及描述:
MVC全名是Model View Controller,是模型(model)-視圖(view)-控制器(controller)的縮寫,一種軟體設計典范;
Model(模型)表示應用程式核心(比如資料庫記錄串列),
View(視圖)顯示資料(資料庫記錄),
Controller(控制器)處理輸入(寫入資料庫記錄),優點:耦合性低、重用性高
三、ANR是什么?如果出現ANR,你會怎么處理?
說真的,做android的應該知道ANR這個術語,可面試的時候當時我就大腦一片空白,完全沒搜索出來,后來面試人員一提示,立馬想起來了;我的回答是:是操作程式占用時間過長或者主執行緒被阻塞引起的ANR,解決辦法是把占用時間長的操作進行多執行緒處理或者進行異步操作處理,本人覺得還是基本正確的,至少是面試官希望聽到的結果,下邊呈現技術大牛們的詳細解釋,
在Android上,如果你的應用程式有一段時間回應不夠靈敏,系統會向用戶顯示一個對話框,這個對話框稱作應用程式無回應(ANR:Application Not Responding)對話框,用戶可以選擇“等待”而讓程式繼續運行,也可以選擇“強制關閉”,所以一個流暢的合理的應用程式中不能出現anr,而讓用戶每次都要處理這個對話框,因此,在程式里對回應性能的設計很重要,這樣系統不會顯示ANR給用戶,
默認情況下,在android中Activity的最長執行時間是5秒,BroadcastReceiver的最長執行時間則是10秒,
ANR的常見型別
ANR一般有三種型別:
- KeyDispatchTimeout(5 seconds) --主要型別
按鍵或觸摸事件在特定時間內無回應 - BroadcastTimeout(10 seconds)
BroadcastReceiver在特定時間內無法處理完成 - ServiceTimeout(20 seconds) --小概率型別
Service在特定的時間內無法處理完成
三:KeyDispatchTimeout
A key or touch event was not dispatched within the specified time(按鍵或觸摸事件在特定時間內無回應)
具體的超時時間的定義在framework下的ActivityManagerService.java
為什么會超時呢?
超時時間的計數一般是從按鍵分發給app開始,超時的原因一般有兩種:
- 當前的事件沒有機會得到處理(即UI執行緒正在處理前一個事件,沒有及時的完成或者looper被某種原因阻塞住了)
- 當前的事件正在處理,但沒有及時完成
如何避免KeyDispatchTimeout
- :UI執行緒盡量只做跟UI相關的作業
- :耗時的作業(比如資料庫操作,I/O,連接網路或者別的有可能阻礙UI執行緒的操作)把它放入單獨的執行緒處理
- :盡量用Handler來處理UIthread和別的thread之間的互動
說了那么多的UI執行緒,那么哪些屬于UI執行緒呢?
UI執行緒主要包括如下: Activity:onCreate(), onResume(),
onDestroy(), onKeyDown(), onClick(),etc AsyncTask: onPreExecute(),
onProgressUpdate(), onPostExecute(), onCancel,etc Mainthread handler:
handleMessage(), post*(runnable r), etc
**HR三面 **
簡單自我介紹一下過往的經歷和專案
- 機器人每次向前走1步概率是1/2,每次向前走2步概率是1/2,當機器人走的路程是4的整數倍時候結束,求結束時機器人步數的期望
- 老公接老婆下班,老公6:20—6:30到,老婆6:25—6:30下辦公樓,如果老公到老婆辦公樓下比老婆晚,就會挨打,求老公挨打概率,
最后
針對最近很多人都在面試,我這邊也整理了相當多的面試專題資料,也有其他大廠的面經,希望可以幫助到大家,
下面的面試題答案都整理成檔案筆記,也還整理了一些面試資料&最新2020收集的一些大廠的面試真題(都整理成檔案,小部分截圖),有需要的可以點擊進入暗號:QF
最新整理面試題

最新整理電子書

最新整理大廠面試檔案

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持,一鍵三連哦!

謝謝大家
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/177376.html
標籤:其他
