這篇文章本來是不想的蒂誉,因為入職新公司都一個月了僚纷,但是想想還是寫寫,自己對過去的兩三年做個總結(jié)拗盒,或許能幫助到些人怖竭,或者從中能得一些建議。這次出去面試主要是兩個星期的時間陡蝇,第一個星期主要是投簡歷痊臭,第二個星期主要是面試,一天安排了2-3個面試登夫。
先說說這次面試主要印象比較深的知識點:
- 棧和堆的區(qū)別
- 接口和抽象類的本質(zhì)區(qū)別
- String广匙、StringBuffer和StringBuilder的區(qū)別
- 注解、反射恼策、泛型
- Handler消息機(jī)制鸦致,生產(chǎn)者和消費(fèi)者模型
- View潮剪、ViewGroup的事件傳遞機(jī)制,如何解決滑動沖突分唾? 回答如何滑動沖突最好是舉出實際的場景和怎么解決的
- View抗碰、ViewGroup的繪制流程
- okHttp、Retrofit的源碼绽乔,原理
- 解釋一下什么是MVP架構(gòu)
- Https原理弧蝇,加密算法
- RecyclerView的緩存機(jī)制
- 常見的設(shè)計模式主要問到了這幾個(單例、代理折砸、適配器看疗、建造者),先說概念睦授,然后面試官會問具體的使用場景
- 最新的Google AAC架構(gòu)(ViewModel两芳、LiveData、Room等等)有沒有在使用去枷,以及背后的實現(xiàn)原理
- Kotlin有沒有在使用怖辆,問這個問題的公司,基本上自己的公司在使用Kotlin開發(fā)新App沉填,要么在使用Kotlin遷移、重構(gòu)佑笋、與java混合在一起
- Android常見的內(nèi)存泄漏原因翼闹,以及檢查工具,主要是問如何使用Android Profile檢查內(nèi)存泄漏的蒋纬,性能分析怎么做猎荠?以及第三方檢查內(nèi)存泄漏的工具LeakCanary的原理?
- 開發(fā)的App有哪些亮點蜀备,難點关摇、如何排查線上的bug,有沒有重構(gòu)代碼的經(jīng)驗
以上的面試題碾阁,主要是Android應(yīng)用層知識输虱,需要面試之前造造火箭的,還需要平時的耕耘脂凶、積累和總結(jié)宪睹。
再說說面試印象比較深的公司
浦發(fā)信用卡
浦發(fā)信用卡是被懟的最慘的,剛開始問了幾個基礎(chǔ)的問題蚕钦,然后問我你做的app傳參數(shù)是怎么防止別人竄取的亭病。因為我上家公司主要是做金融理財貸款類型的app,在加上是浦發(fā)信用卡研發(fā)團(tuán)隊的性質(zhì)嘶居,想想問這個問題很正常罪帖。 我回答用so庫對參數(shù)進(jìn)行驗證,對一些特殊的參數(shù)進(jìn)行md5加密,跟后臺進(jìn)行比對整袁。面試官so庫就安全嘛菠齿,不可以反編譯嘛。然后接著問https原理葬项,加密算法知道哪些泞当?壓根回答不出,信心一下子就沒了民珍。面試官接著問RecyclerView的緩存機(jī)制襟士,更加回答不出,因為平時也看過嚷量,里面的代碼也太多陋桂,平時沒遇到上萬,幾十萬的數(shù)據(jù)蝶溶,有很多種不同類型的布局的列表嗜历。所以不會往深入看,也看不太懂抖所。
天天拍車(D輪的專業(yè)個人賣車平臺梨州,類似瓜子二手車)
面試官問了兩個半的小時的技術(shù)問題,涵蓋了上面總結(jié)的大部分面試題(除了浦發(fā)信用卡總結(jié)的)田轧,總體發(fā)現(xiàn)聊的還不錯暴匠,因為大部分都答出來了,過了兩天收到了復(fù)試傻粘。
工程師爸爸(B輪的專業(yè)做兒童教育的)
面試官主要是問了最新的Android Jetpack最新的組件原理每窖、Kotlin有沒有在使用、android的進(jìn)程間的通信方式弦悉、多線程下載你是怎么做的窒典?斷點怎么做?總體回答的還可以稽莉,問到后面面試官說瀑志,我看了你的github。因為我的github上面開源了一個多線程下載文件實例和Kotlin寫的一個開源的App污秆。過了兩天收到了復(fù)試后室。
總結(jié)了幾家公司,還有其它公司的復(fù)試混狠,offer岸霹。沒一一列舉了。復(fù)試的都沒去将饺,因為打電話過來復(fù)試贡避,都快入職了我現(xiàn)在公司痛黎。入職的公司記得是第一個星期周六面試的,印象比較兩個深的問題:1刮吧、Handler消息機(jī)制湖饱、生產(chǎn)者和消費(fèi)者模型如何理解,如何應(yīng)用到實際開發(fā)中的杀捻。2井厌、幀動畫有上多張圖片如何保證內(nèi)存不OOM?問的技術(shù)點基本上都答出了來了致讥,然后人事面仅仆,問我什么時候盡快入職,往后推了一個星期入職垢袱。 目前入職的公司是主要做智能交互墓拜、智能機(jī)器人這塊,10幾個搞android的请契。發(fā)現(xiàn)前人敲的代碼咳榜,有好的,也有差的爽锥。這個也正常涌韩,自己也有敲的差的代碼也留給了別人。
總體發(fā)現(xiàn)整個面試下來氯夷,投簡歷發(fā)現(xiàn)今年996的公司還蠻多的臣樱,前兩年沒有這么多。有的人事肠槽,boss會直接說是996擎淤,要么自己面試過程中問是不是996奢啥,996的公司是拒絕的秸仙,壓根不想去。面試的過程中發(fā)現(xiàn)自己的信心不夠桩盲,技術(shù)能力也不夠寂纪、自己也著急。面試想想這幾點要特別注意赌结。
- 像大一點的廠捞蛋,投簡歷過去,在加上面試的時間回復(fù)柬姚,需要兩周拟杉。
- 如果面試官過程中,發(fā)現(xiàn)面試官沒有問什么技術(shù)問題量承,或者問的問題不夠深入搬设,基本上可以斷定這家公司不是靠技術(shù)作為驅(qū)動公司發(fā)展的穴店。
- 提高自己的信心,自己要會的多拿穴,對知識點的理解要深入泣洞。
寫這篇文章的目的主要是做個總結(jié)。記得剛出學(xué)校時默色,希望自己能遇到一個大牛帶帶自己球凰,要多學(xué)習(xí),可能進(jìn)公司的目的都是為了學(xué)習(xí)腿宰。我想有很多剛出學(xué)校的有我這樣的心態(tài)呕诉,哈哈,這個當(dāng)初的心態(tài).....現(xiàn)在想想整個心態(tài)都不一樣了酗失,進(jìn)公司是為了體現(xiàn)價值义钉、給公司帶來效益。至于技術(shù)很大一部分是需要靠自己的规肴,還一部分是公司的業(yè)務(wù)捶闸、產(chǎn)品需求是做哪塊,技術(shù)點就會主要攻哪塊拖刃。平時學(xué)習(xí)需要多積累删壮、多體會、代碼需要多動手敲兑牡。 剛出學(xué)校來寫代碼很亂央碟,沒編程風(fēng)格,沒思路均函。這個很正常亿虽,大部分人都這樣,能力是慢慢提升的苞也,經(jīng)歷過一兩年這一點會好多了÷迕悖現(xiàn)在我看看自己兩年前的敲的代碼,很菜如迟,很次收毫。
由于自己做開發(fā)三年了,主要是在做android端的app殷勘,這其中也學(xué)習(xí)了Spring此再、SpringMVC、ios開發(fā)等等玲销。之所以會接觸其它的输拇,一是待的公司的需要,有的公司人手不夠或者有的崗位并不想在招人贤斜,拉你去做做策吠、去看看议慰,對于這個自己開始工作的第一年內(nèi)心是很拒絕的,并不想做其它的奴曙。二是隨著工作時間久了别凹,學(xué)習(xí)能力也慢慢的提高了,發(fā)現(xiàn)需要學(xué)習(xí)其它的東西洽糟,光Android的應(yīng)用層壓根不夠炉菲,再加上市場的競爭越來越激烈。去年開始接觸Kotlin坤溃、Rect拍霜、ios的時候,學(xué)習(xí)的過程中發(fā)現(xiàn)很多東西的都是相通的薪介,即使是不同的平臺祠饺,不同的開發(fā)語言。比較像金庸小說里面描述武學(xué)的那樣 “天下武學(xué)殊途同歸”汁政。
寫代碼總結(jié)以下幾點:
- 需要確認(rèn)需求的道偷,理解有偏差的。寫代碼之前一定要和產(chǎn)品經(jīng)理溝通交流记劈。寧愿多花時間去和測試的勺鸦、設(shè)計師溝通,也不要去埋頭寫代碼目木。同樣的换途,認(rèn)真想想怎么實現(xiàn)這樣一個功能,思路理清了在敲代碼刽射。
- 養(yǎng)成良好的編碼習(xí)慣军拟,風(fēng)格。多看看Google開源的在github上示例誓禁,或者其它知名公司的懈息。
- 六大設(shè)計原則、一些常用的設(shè)計模式理解透牢記于心现横,多在編碼過程中使用漓拾。
- 代碼要有思路阁最,寫好注釋戒祠,寫的代碼不單單是自己要看,也是給別人看的速种。
- 平時學(xué)習(xí)需要多總結(jié)姜盈、多體會、代碼需要多動手敲配阵。