Android實習生春招面經(jīng),阿里五面頭條四面

剛剛郵箱居然收到了有人喜歡我一年前寫的半桶水事件分發(fā)機制。都一年多沒上簡書平臺了,這一年由于發(fā)生了點不太如意的事情,工作室的房間被撤,我們失去了根據(jù)地。所以我的簡書之路剛開始就停下了腳步,挺不好意思的。。。
正好前段時間實習春招拿到了頭條和阿里的offer,這里把我的一些心得分享給大家吧~

阿里面經(jīng)+個人心得

一面
  • java虛擬機相關(guān)問題
  • 垃圾回收機制
  • 數(shù)組和鏈表的區(qū)別,特點
  • CCSP里做過什么題目
  • HTTPS SSL
  • TCP/IP三次握手
  • HandlerThread
  • ThreadLocal
  • View的繪制
  • ListView優(yōu)化
  • Handler機制
  • 事件分發(fā)機制
  • 談?wù)勀銓VP的理解及其優(yōu)化
    有些人將Activity作為Presenter。還有對Presenter的優(yōu)化,在V與P之間 P與M之間 增加代理類(雖然我沒有做過。)
  • Builder設(shè)計模式的應(yīng)用
  • 內(nèi)存泄漏(詳細舉例)
    比如單例模式下,如果實例持有Activity的引用,那么Activity退出時它的內(nèi)存將不會被回收,因而導(dǎo)致內(nèi)存泄漏,這種情況應(yīng)該傳Application的Context
    匿名內(nèi)部類將持有Activity的實例。避免在Activity中使用非晶態(tài)內(nèi)部類,在傳遞Activity的時候使用軟引用(使用前記得判空)
    使用LeakCanary 進行Android內(nèi)存檢測
  • java的類加載機制
  • Android的類加載方式,區(qū)別
  • Glide
  • 進程管理
  • 內(nèi)存管理
  • 設(shè)備管理
  • 文件管理
  • 中間還有一些問題暫時想不起來了
二面
  • 介紹下自己
  • 介紹下自己的項目
  • 請說下你對相冊的優(yōu)化
  • RecyclerView復(fù)用機制
  • RecyclerView的優(yōu)化
  • Glide加載圖片原理(如何壓縮,如何緩存,三級緩存各是什么作用)
  • 如果增加了緩存是否會使你的App性能下降?
    這里他是想問你你為啥實現(xiàn)緩存,圖片復(fù)用的命中率有多少?緩存真的能給你的app帶來效率上的提升嗎?主要結(jié)合項目來談
  • 一個jpg或者png圖片,它的大小如何計算
  • 如何處理recyclerView圖片閃爍問題
  • 在開發(fā)過程中,遇到最大的困難是什么
  • 你的技術(shù)棧,平時怎么學(xué)習的看過哪些書
  • 數(shù)據(jù)庫,索引,事務(wù)(詳細介紹的那種,比如索引底層用的BTree,優(yōu)點缺點,事務(wù)的四大特性,權(quán)限等)
  • MVP,MVC
  • 循環(huán)鏈表的檢測
  • 好像還有一些問題。想不起來了,我盡力了。。真的。
總監(jiān)面
  • 你是怎么學(xué)習java和Android的
  • 問項目
  • 主要還是圍繞項目聊。。項目功能的實現(xiàn),項目維護啥的,深入項目細節(jié)
  • 自定義View,在網(wǎng)上看過哪些自定義控件,自己實現(xiàn)過哪些?
  • 看過哪些源碼?
  • OOM怎么出現(xiàn)的?解決方法?
  • Glide源碼
  • java內(nèi)存模型
  • javaGC過程
  • 屏幕適配
  • 考不考研。。。
  • 參加過B或T的面試了嗎?為什么選擇阿里?
  • 清明后HR會盡量快點給你打電話
交叉面

某天晚上十點鐘,打游戲打得正嗨呢,突然杭州一個電話打過來,心里一哆嗦。只能坑隊友了。。

這次是另一個部門的主管面試的我,由于當天晚上面完了我就洗洗睡了,加上第二天又浪了一下(某個學(xué)長回來了,和社團的同學(xué)去吃火鍋唱KTV,杰倫專場唱到嗓子啞 + 感冒頭疼。。)具體的問題記得不太清楚了,不過總的來說主要還是圍繞著項目的細節(jié)問的,還有對項目的優(yōu)化和進一步改進的方法,和一些其它小問題。。
(老夫記性一向不太好。。這里給大家說聲不好意思了。。)
不過最后面試官對我還是挺滿意的,讓我等待HR面試。

技術(shù)面總結(jié)

總體來說不是很難,阿里的面試官比較注重基礎(chǔ)和項目。應(yīng)該是對自己工作定位原因吧,我給自己目前的定位是實現(xiàn)應(yīng)用層的功能上,還沒機會,暫時也沒實力進軍SDK開發(fā),先把應(yīng)用層做好吧。所以和面試官聊的最多的是對項目的看法。一般來說他們不會太為難你的,可能是我運氣好吧,我遇到的面試官都很Nice。復(fù)習好就行,遇到不熟悉的領(lǐng)域的先說自己在該方面的認識再說不會,如果他繼續(xù)問你,說明在考察你思考問題的思路,順著思路答就好了。

HR面

這里由于涉及到一些個人問題,我就不怎么貼出來給大家看了,這里給大家推薦一下我準備HR面試時看的面經(jīng)吧

http://www.zheyibu.com/article/5698.html

http://baijiahao.baidu.com/s?id=1566148416765923&wfr=spider&for=pc

http://ifeve.com/ali-think-21/

都是百度上很好找到的面經(jīng)

HR面總結(jié)

其實在HR面這塊,很多地方我答得并不是很完備,全程小心謹慎,生怕說錯半個字
在HR面里,個人覺得更多的是考驗的是你的綜合能力,作為一名程序員,有努力勤奮的精神是不夠的,還有注重和團隊成員的溝通和情緒管理(千萬不要拿刀砍產(chǎn)品經(jīng)理 o( ̄ ̄)d )
后來HR還告訴我,專注于技術(shù)也是不夠的,對業(yè)務(wù)也要做到胸有成竹。最后真誠+反套路是關(guān)鍵!最主要的還是真誠,畢竟她吃的鹽比你吃的飯還多,要比套路你是套路不過她的,揚長避短,引導(dǎo)她向你的長處發(fā)問,最好結(jié)合自身經(jīng)歷多準備幾個實際場景

持續(xù)一個多月的春招內(nèi)推經(jīng)歷圓滿結(jié)束!長舒一口氣啊,趕緊下山把頭號玩家看了

最后。。。

頭號玩家真好看! (`?ω?′)

一些拙見吧

如果確定了自己要找工作,大概從大二開始要有危機感了,可以開始接觸項目維護項目并看相關(guān)書籍和框架源碼了
主要還是通過項目學(xué)習,再一個就是看書看博客了。這里給大家推薦一些學(xué)習的書籍:

  • 深入理解java虛擬機
    java 的一些容器類的實現(xiàn)過程也很重要哦! 比如 HashMap,ConcurrentHashMap, LinkedHashMap等等的實現(xiàn)原理,要熟知,上面雖然沒問到,但其他公司問的挺多的

  • java多線程編程核心技術(shù)

  • java并發(fā)編程的藝術(shù)
    關(guān)于并發(fā),新手不建議直接看并發(fā)編程實戰(zhàn),最好從上兩本入門

  • Android第一行代碼

  • Android群英傳

  • Android從小工到專家

  • Android開發(fā)藝術(shù)探索

  • Android源碼設(shè)計模式
    關(guān)于Android方面的書籍,當然還有一些其它的優(yōu)秀書籍,這里我暫時推薦我讀過的吧。

  • 圖解HTTP

  • 圖解TCPIP

  • HTTP權(quán)威指南
    由于我是屬于那種萬年不聽課的人。對學(xué)校的教育也不太重視,期末的時候只是敷衍了下。還是有點后悔的,對于專業(yè)課如果碰到了好老師大家還是要好好學(xué)??!
    關(guān)于計算機網(wǎng)絡(luò),找工作的時候最重要的兩個點是 TCP/IP三次握手四次揮手和SSL過程, 其次要知道HTTP的組成,最好看一遍HTTP請求頭響應(yīng)頭中的關(guān)鍵字。
    其實我覺得圖解系列看的挺舒服的,很快就看完了思路也清晰,就是不夠深入,可以根據(jù)自己感興趣的點展開,百度谷歌

  • 數(shù)據(jù)結(jié)構(gòu)方面,這個不太好建議。代碼寫多了就會了,學(xué)校的數(shù)據(jù)結(jié)構(gòu)課認真上,Mooc上的網(wǎng)課認真聽,題目認真做,實在不行面試前去??途W(wǎng)去學(xué)校的OJ上刷題

  • 數(shù)據(jù)庫方面,自己操作一遍,把一些比較復(fù)雜的操作自己動手實現(xiàn)一遍,熟知視圖,索引,事務(wù)等等的原理過程,一般不會問的太難

  • 操作系統(tǒng)方面問的比較少,但這也是我現(xiàn)階段比較薄弱的點,在此不太好向大家推薦我的拙見,我目前的想法是看鳥哥私房菜,后面會慢慢惡補這方面的知識

  • 關(guān)于博客公眾號
    CSDN上幾位大神的博文(郭霖、鴻洋等)和 原來的StormZhang,這里不是想抹黑張哥,主要是張哥現(xiàn)在轉(zhuǎn)管理崗了,關(guān)于技術(shù)方面的博文更新較少,對實習生找工作來說收益不太大,但現(xiàn)階段他公眾號的作用更多的是擴寬視野和人生規(guī)劃方面,還是值得關(guān)注的

最后祝大家 找工作的 能順利拿到心怡的offer,考研的 能考上理想的學(xué)校,找到優(yōu)秀的導(dǎo)師

(*′?v?)

頭條面經(jīng)

一面
  • Activity生命周期,啟動模式

  • onNewIntent調(diào)用時機

  • 垃圾回收機制

  • volatile

  • 事件分發(fā)

  • Bitmap壓縮策略

  • 自定義View(requestLayout,invalidate)

  • invalidate 導(dǎo)致該View 重繪

  • requestLayout 導(dǎo)致該View該View的父View重新執(zhí)行onMeasure、onLayout

  • 獲取View寬高的方式

  • View層級的優(yōu)化

  • MVP,Presenter的優(yōu)化

  • HandlerThread

  • SharePreference

  • 數(shù)據(jù)庫

  • git

  • 進程間通信的方式

  • Parcelable與Serializable 的區(qū)別

  • Glide

  • Rxjava

二面
  • 介紹下自己

  • 介紹下項目

  • 項目中視頻是怎么實現(xiàn)的

  • 項目中實現(xiàn)相冊的過程中遇到哪些困難

  • RecyclerView 優(yōu)化,它的優(yōu)勢有哪些

  • recyclerView 和listView 復(fù)用機制的區(qū)別

  • Glide源碼

  • BitMap圖片大小如何判斷

  • BitMap具體的壓縮過程

  • BitMap在緩存時候的轉(zhuǎn)碼過程

  • Activity四大啟動模式,以及聯(lián)系實際情況的詢問

  • activity與window在什么時候關(guān)聯(lián)起來的

  • activity.startActivity 過程

  • activityStack,activitySupervisor 相關(guān)知識

  • ThreadLocal 是怎么做到線程私有的

  • 一個具體的Android場景,問我怎么設(shè)計(關(guān)于分割線,我想對不同Item進行不同處理,怎么做)

  • 另一個具體的Android場景。。(自定義一個Button,要對它進行單次點擊監(jiān)聽,兩次點擊監(jiān)聽,多次 點-擊監(jiān)聽,怎么實現(xiàn))

  • Handler內(nèi)存泄漏原因

  • ViewStub,merge,include相關(guān)問題,以及merge中再加一個merge

  • 一個普通二叉樹,給你定點和指定節(jié)點,輸出他們的路徑(現(xiàn)場寫)

  • 中間還有一些小問題不記得了

三面
  • 自我介紹

  • 寫個題目,在數(shù)組中插入一個數(shù)據(jù),并實現(xiàn)擴容

  • 計算機操作系統(tǒng),在計算機中物理內(nèi)存的地址結(jié)構(gòu)是怎樣的

  • 計算機網(wǎng)絡(luò),如果要實現(xiàn)一個即時通訊的技術(shù),你時選擇TCP還是UDP,為什么

  • 算法,在手機通訊錄的查找功能中,輸入前幾個字符,輸出匹配字符,你如何實現(xiàn),使用什么樣的數(shù)據(jù)結(jié)構(gòu),為什么

  • java虛擬機的內(nèi)存結(jié)構(gòu)

  • javaGC過程

  • 你有什么想問我的

其實頭條三面我挺懵逼的,我同學(xué)都是二面+HR,為咩我多了一個技術(shù)面。?!而且全程不到二十分鐘,很短

HR面

頭條的hr面還是挺輕松的,HR小姐姐非常溫柔,而且對我們學(xué)校的科技組織非常了解,聊的很開心。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容