主頁 > 軟體設計 > 阿里釘釘Android實習面試也太太太太難了吧,對演算法的要求堪比位元組

阿里釘釘Android實習面試也太太太太難了吧,對演算法的要求堪比位元組

2021-04-28 14:10:02 軟體設計

本人研究生在讀,在2月26日找了師兄內推阿里釘釘團隊,28號接到了約1面的電話,幸好我提前準備了一個多月的樣子,刷面試題、刷LeetCode(面了之后才覺得自己刷少了),對于我這樣一個實習生來說題目還是有些偏難,不過在4月20號終于拿到意向書了,聽內推人說阿里實習面試沒有rank,可能單純就是流程比較慢,漫長的等待和面試還是值得的呀,

釘釘1面,3月1日(電話面試,1個小時)

  1. 本科、研究生學過什么跟計算機相關的課?

  2. tcp、http協議相關;http1.1和2.0區別

  3. 堆排序的程序

  4. Java單例有幾種方式

  5. 靜態方法同步和普通方法同步的區別

  6. 執行緒池7大引數、作業原理

  7. 點擊手機桌面應用圖示后發生了什么

  8. View三大流程說了一下,流式布局FlowLayout怎么實作的

  9. retrofit原理,看過okhttp原始碼,講了一下okhttp的作業原理(分發器、攔截器,講了細節)

  10. 聊了專案(講了好久),幾個方面如下:

(1)專案中用了kotlin協程,于是問了協程的相關理念,面試官可能覺得說的不太全,就給補充了一下, 然后說協程這樣的新技術國外有人用,國內用的很少(因為使用協程會改變老專案原有網路架構,對于新專案可以使用,想要取代老專案比較困難),

(2)如果用戶反應app有問題,該怎么解決?回答網路抓包,面試官說大型專案不可能通過抓包來找問題,后來經過暗示,正確做法應該是生成日志檔案并提交到服務器,

(3)聊了專案中登錄相關的業務怎么實作的(將服務器回應的token持久化并添加到請求頭),

  1. 提問環節,問了面試官kotlin在企業應用中是否有用到,面試官說由于Java和kotlin并不沖突,因此在專案中是共存的,

第二天下午接到了約2面的電話,就約在當天晚上

釘釘2面,3月2日(電話面試,1個小時)

  1. 聊了研究生、本科階段得過哪些獎,做過哪些專案或者參加過哪些比賽,具體問了本科參加過的一個水中機器人的比賽(stm32單片機做的),怎么識別水中的路線之類的一些細節;又問了簡歷中的一個醫療機器人的專案(遇到了哪些問題、只是實驗室做著玩還是準備用在現實生活中);又問了參加過的數學競賽,這個競賽考察了什么能力等等,

  2. 問設計模式,Android原始碼或者第三方開源框架應用設計模式舉例?(說了okhttp攔截器責任鏈模式)
    自己的專案有沒有用設計模式?(retrofit單例,用的kotlin的object關鍵字實作)

  3. Android原始碼中你認為有哪些方面設計的很優秀的地方?(說了Android view體系)

  4. 聊kotlin,kotlin相比于Java有哪些優勢、具體有哪些特性、語法糖之類的

  5. 談談對mvvm、mvc架構的理解,為什么你要在專案中使用mvvm?(當然是Google推薦使用mvvm)

  6. 聊對作業、學習方面的態度,應該具備什么能力等等

  7. 三道演算法題(說思路):
    (1)二叉樹的最近公共祖先(只想出來一種比較笨的方法)
    (2)遍歷二叉樹的第k層節點(遞回迭代都講了)
    (3)給一個中文字串“一萬兩千八百一十一”(只是個例子),輸出這個字串對應的數值(沒想出來)

  8. 提問環節,問了部門的氛圍如何之類的

二面之后參加了阿里的第一次筆試,兩道力扣hard題,血難,加上我之前沒練過ACM輸入輸出,最后一道也沒過0分

(1)力扣1411:網格圖涂色的方案數

(2)力扣815:公交路線

筆試之后心態崩了,覺得0分應該進不了阿里了,沒想到過了兩周二面的面試官給打了個電話,說前兩面的面試成績挺好,可以再給一個機會,用阿里伯樂平臺出了4道題(其實是前兩道有點難,第一道貪心演算法,第二道工廠模式+策略模式+多執行緒都不會),才又出了后面兩道簡單的演算法題,一個反轉字串中的單詞,一個求鏈表倒數第k個節點,這倆寫出來了,一周之后接到了3面的電話,

釘釘3面,3月24日(電話面試,40分鐘)

  1. 自我介紹

  2. 聊專案,mvc、mvp和mvvm架構各自的特點;在專案中最具有挑戰的是什么?專案識訓到了什么?

  3. 演算法題:給兩個字符陣列,舉例:{h,e,l,l,o, ,w,o,r,l,d}和{e,o},如果第一個陣列中存在第二個陣列中的元素則去掉,后面的元素往前順移,結果為:{h,l,l, ,w, r,l,d},要求時間復雜度為O(n),空間復雜度為O(1),

  4. 你認為什么樣的人可以稱之為技術大佬?如果只有30分鐘,你會依據什么來判斷一個人是不是大佬?你認為自己身邊最厲害的技術大佬是誰?他為什么會成為大佬?你愿不愿意推薦他到我們頂頂團隊(我說他投了螞蟻,面試官說他做了錯誤的選擇…)?如果讓你在半年之內達到他的水平,你的學習規劃是什么?你會不會向他請教學習方法?

  5. 反問:

(1)大廠對新技術的態度是怎樣的?
(2)鴻蒙會不會取代Android?Android的前景怎樣?面試官先問了我的觀點,后來說了自己的觀點:不會,
為什么不會?這個要自己查找最近幾年出現的智能手機系統,它們為什么沒有Android和iOS成功,從中找答案,

釘釘HR面,3月30日(釘釘視頻面試,20分鐘)

  1. 自我介紹,開了共享螢屏現場給HR展示了之前的一個專案

  2. 你的專案UI界面是自己設計的嗎?

  3. 你對未來的規劃是什么?

  4. 有沒有投別的大廠?

  5. 大廠有很多,為什么要投阿里?為什么要投釘釘部門?

  6. 你對互聯網行業加班現狀怎么看?你對加班的態度怎樣?

提問環節:

(1)實習生待遇怎樣?

(2)轉正率高不高?(阿里實習期間如果表現正常基本都能轉正,除非自己不想轉正)

(3)加班情況怎樣?(除了大版本更新,平時不會像拼多多那么肝,一般晚上九點就清場了,周末基本也不用加班)

面試經驗總結

  • 一定要謹慎對待寫在簡歷上的東西,一定要對簡歷上的東西非常熟悉,因為一般情況下,面試官都是會根據你 的簡歷來問的;

  • 注重計算機基礎,對自己投遞崗位需要的技能足夠熟練,對其他崗位需要的知識也要有所了解,

  • 注重演算法,很多人都沒有意識到演算法的重要性,國外的企業都在問演算法題,國內大廠演算法現在也是必不可少的,算是行業風口,掌握演算法的人將拿到更多的機會,

  • 關注技術視野,技術視野是大家容易忽略的一個點,包括深度和廣度,包括阿里在內的很多大廠面試都很看重這個,有些人面試答得很好,卻給面試官留下一個視野狹窄的印象,

  • 能有一個上得了臺面的專案也非常重要,這很可能是面試官會大量發問的地方,所以在面試 之前好好回顧一下自己所做的專案;

  • 和面試官聊基礎知識比如設計模式的使用、多執行緒的使用等等,可以結合具體的專案場景或者是自己在平時是 如何使用的;

  • 建議提前了解一下自己想要面試的公司的價值觀,判斷一下自己究竟是否適合這個公司,

我個人覺得面試也像是一場全新的征程,失敗和勝利都是平常之事,所以,勸各位不要因為面試失敗而灰心、 喪失斗志,也不要因為面試通過而沾沾自喜,等待你的將是更美好的未來,繼續加油!

另外,希望學弟學妹早有規劃,不妨正式作業前來阿里實習多看看,如果你覺得自己目前的硬實力又不到,我覺得還是有必要去努力一下的,技術能力的高低能決定你走多遠,平臺的高低,能決定你的高度,

面試官通常會問一些開放性的問題,對你的思維拓展能力、多方位的思考能力也是一種考驗

永遠不要打無準備之仗!早做準備,多做準備!

下面分享一下我之前刷過的面試題以及演算法資料,希望能幫助到有心在技術這條道路上一路走到黑的朋友!

Java部分

  • 作業系統相關
  • JDK&JVM&JRE
  • 面向程序 & 面向物件
  • 八大基本資料型別&參考型別
  • 陣列
  • Java例外
  • 集合(容器)
  • 執行緒
  • 泛型
  • 反射
  • 注解
  • Socket編程
  • 設計模式
  • JVM相關

Android部分

Activity

  • 典型情況下的Activity生命周期?
  • 例外情況下的Activity的生命周期 & 資料如何保存和恢復?
  • 從Activity A跳轉到Activity B之后,然后再點擊back建之后,它們的生命周期呼叫流程是什么?
  • 如何統計Activity的作業時間?
  • Activity的啟動模式 & 使用場景
  • 如何在任意位置關掉應用所有Activity & 如何在任意位置關掉指定的Activity?
  • Activity的啟動流程(從原始碼角度決議)?
  • Activity任務堆疊是什么?在專案中有用到它嗎?說給我聽聽

BroadcastReceiver

  • 廣播是什么?
  • 廣播的注冊方式有哪些?
  • 廣播的分類 & 特性 & 使用場景?

ContentProvider

  • 什么是內容提供者?
  • 說說如何創建自己應用的內容提供者 & 使用場景
  • 說說ContentProvider的原理
  • ContentProvider,ContentResolver,ContentObserver之間的關系
  • 說說ContentProvider的權限管理

Service

  • 什么是Service?
  • 說說Service的生命周期
  • Service和Thread的區別?
  • Android 5.0以上的隱式啟動問題及其解決方案,
  • Service保活方案
  • IntentService是什么 & 原理 & 使用場景 & 和Service的區別,
  • 創建一個獨立行程的Service應該怎樣做?

Handler

  • 子執行緒一定不能更新UI嗎?
  • 給我說說Handler的原理
  • Handler導致的記憶體泄露你是如何解決的?
  • 如何使用Handler讓子執行緒和子執行緒通信?
  • HandlerThread是什么 & 原理 & 使用場景?
  • 一個執行緒能否創建多個Handler,Handler和Looper之間的對應關系?
  • 為什么Android系統不建議子執行緒訪問UI?

AsyncTask

  • AsyncTask是什么?能解決什么問題
  • 給我談談AsyncTask的三個泛型引數作用 & 它的一些方法作用,
  • 給我說說AsyncTask的原理
  • 你覺得AsyncTask有不足之處嗎?

Fragment

  • Android中v4包下Fragment和app包下Fragment的區別是什么?
  • Fragment的生命周期 & 請結合Activity的生命周期再一起說說,
  • 說說Fragment如何進行懶加載,
  • ViewPager + Fragment結合使用會出現記憶體泄漏嗎 & 如何解決?
  • Fragment如何和Activity進行通信 & Fragment之間如何進行通信?
  • 給我談談Fragment3種切換的方式以及區別 & 使用場景,

檔案存盤

  • 說說Android中資料持久化的方式 & 使用場景
  • 接觸過MMKV嗎?說說SharedPreference和它的區別
  • 第三方資料庫框架用過哪些?有沒有自己封裝過一個SQLite的庫
  • SQLite是執行緒安全的嗎 & SharedPreference是執行緒安全的嗎?
  • 請簡單的給我說說什么是三級快取?
  • SharedPreference的apply和commit的區別
  • 談談你對SQLite事務的認識

ListView & RecyclerView

  • ListView是什么?如何使用?
  • RecyclerView是什么?如何使用?如何回傳不一樣的Item,
  • ListView和RecycyclerView的區別是什么?
  • 分別講講你對ListView & RecyclerView的優化經驗,
  • 給我說說RecyclerView的回收復用機制
  • 說說你是如何給ListView & RecyclerView加上拉重繪 & 下拉加載更多機制
  • 談談你是如何對ListView & RecycleView進行區域重繪的?

圖片編程

  • 你對Bitmap了解嗎?它在記憶體中如何存在?
  • 有關Bitmap導致OOM的原因知道嗎?如何優化?
  • 給我談談圖片壓縮,
  • LruCache & DiskLruCache原理,
  • 說說你平常會使用的一些第三方圖片加載庫,最好給我談談它的原理,
  • 如果讓你設計一個圖片加載庫,你會如何設計?
  • 你知道Android中處理圖片的一些庫嗎(OpenCv & GPUImage …)?

WebView

  • WebView會導致記憶體泄露嗎?原因是什么?解決方式有哪些?
  • 你知道Hybrid開發嗎?說說你的相關經驗
  • 說說WebSettings & WebViewClient & WebChromeClient這三個類的作用 & 用法,
  • 說說你了解的Hybrid框架,
  • 如何提高原生的WebView加載速度?
  • 談談你對webView作業機制的認識,你在專案中優化過它嗎?說說是從哪些方面著手的?

ViewPager

  • 什么是ViewPager?說說它的那些配接器,(校招&實習)
  • 你了解ViewPager2嗎?和ViewPager 1有哪些區別?
  • ViewPager + Fragment結合使用存在的記憶體泄漏的原因是什么?如何解決?

View事件分發機制

  • 什么是事件分發機制?主要用來解決什么問題?(校招&實習)
  • 給我說說事件分發的流程 & 你專案解決事件沖突的一些案例,
  • 分別講講有關事件分發的三個方法的作用及關系,
  • 如果我在一個設定了點擊事件的TextView中dispatchTouchEvent方法強制回傳ture或
    者false會發生什么?
  • 談談你對MotionEvent的認識?Cancel事件是什么情況下觸發的?
  • requestLayout(),onLayout(),onDraw(),drawChild()區別和聯系?

由于篇幅有限,只能分享部分面試題,更多面試題及答案去我的【GitHub】閱讀下載哦~無償分享給大家,算是一個感恩回饋吧

知識深度

也許上面這些面試題,你通過背一背,就能掌握得八九不離十了,畢竟面試官提的很多問題也是在網上找到的,所以你可能會放松警惕,覺得這樣就足夠了,

其實不然,大廠面試官還有一個愛好,就是對于每個知識點,都喜歡深入往下問,問到沒有問題可以問,或者問到你不會為止,這樣提問的目的只有一個,就是試探你對這個知識點的理解深度,如果你無法提供足夠深刻的回答,結果往往就是失敗,

最后希望大家能夠重視面試,不要浪費自己的機會!

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/280945.html

標籤:其他

上一篇:手把手教你如何使用Spring Security(上):登錄授權

下一篇:【C語言從青銅到王者】第三篇·詳解陣列

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more