
金三銀四“倒了”,金九銀十該怎么準備呢?相信有很多人有這樣的困惑,很多人都準備著在面試旺季時候換一個好點的作業,下面我整理了一點能想到的Android面試題目,也看看自己還能想起哪些?
1、本地廣播和全域廣播有什么差別?
2、Broadcast注冊方式與區別
(1)靜態注冊(2)動態注冊 ,什么情況下用動態注冊?
3、http與https的區別?https的實作原理?為什么要用https?
4、用過哪些行程間通信的方式
(1)AIDL,(2)廣播,(3)Content Provider
5、三級快取
(1)記憶體快取,(2)本地快取,(3)網路
6、用過mvp框架么?mvvm是什么?mvp是什么?為什么會出現mvvm?
7、說下View,ViewGroup事件分發機制?
8、做過哪些性能優化?
(1)渲染優化,(2)記憶體優化,(3)耗電優化
9、記憶體泄漏原因?如何避免記憶體泄漏?
10、Android記憶體管理是怎樣的?
11、Java記憶體模型,介紹下?
12、TCP握手協議是怎樣的?
13、Service 是否在 main thread 中執行, service 里面是否能執行耗時的操作?
14、Serializable 和 Parcelable 的區別
15、String,Stringbuffer,Stringbuilder 區別
16、Binder機制原理,Android為什么要采用 Binder 作為 IPC 機制?
17、Android中的幾種影片介紹下
18、加載大圖,你是怎么做的?
19、ANR是什么?怎么避免ANR?
20、為什么要用 ContentProvider?它和 sql 的實作上有什么差別?
21、SurfaceView和View的區別是什么?
22、Dalvik虛擬機與JVM有什么區別?
23、執行緒間的通信方式?不是行程間,
以上這些只是拋出問題,真正面試中,尤其是大公司中面試,沒有固守成規的問法:
舉例:拋出一個問題,
是否使用過volatile?你覺得它是執行緒安全,還是不安全的?如果你答安全的,我會繼續問你,為什么?然后我再問你是否使用過synchronized?
它和volatile區別是什么?如果你答不安全,我依然繼續問你,為什么?
再拋出一個問題,
有用過Java哪些并發容器,如CopyOnWriteArrayList、ConcurrentHashMap等,如果你答第一個,我會問你使用時需不需要加鎖,你說要?我會問為什么?
不要,也會問為什么?然后再問它的原理是怎樣?當然還可以持續問很多,如果你答第二個,我會問,ConcurrentHashMap的內部結構是怎樣?如果你能說到鏈表,我會繼續問,什么時候鏈表會變成紅黑樹?或者什么時候用的是鏈表,什么時候用的是紅黑樹?
如果一面,10個問題答對6個以上,基本上就過了,二面的話,會持續再深挖,拋出一個問題,或是你專案中遇到了的一些問題,如果你不了解,那么就再問其他方面問題,持續深挖,看能掏出多少滿意的東西,三面會從更小細節去問,基本要答對80%的問題,才會過,否則還是沒過,
因為關系能否到HR面,通常來說一輪過了,2-3天會有人繼續面你,否則就是沒過,也不會有通知,可以選擇考慮其他公司了,不是能力不行,只能說雙方不適合,或者候選人沒有呈現自己牛逼的地方,
面試前的準備
大公司既然重基礎,那么面試前一定要好好學習和準備一下這方面的知識,干什么事之前,一定要充分了解情況,古人說的話,還是挺對的,畢竟是 2000 多年來總結出來的經驗,面試就是戰場,知己知彼才能百戰不殆,
舉個例子:
小猿在一家創業公司從事了兩年的 Android 開發,能夠獨立開發一款軟體,技識訓是可以的,效率挺高的,總能快速完成經理交給的任務,平時也會在 GitHub 上提交一些開源代碼,分享了一些開源庫,star 數五六百,好的上千,熟悉使用 RxJava,Retrofit 等網路框架,還會 MVP,MVVM 這樣的架構,感覺自己去 BAT 這樣的公司面試沒問題,可是,還是被打擊到了,
人家回復說:學習能力,開源精神都挺好的,就是基礎太差,
看到了嗎?會使用框架,封裝個簡單的庫,能夠做出產品來并不是多大的能力,做好是需要基礎的,
上面的例子的問題,典型就是不了解自己,也不了解大公司的套路,準備不足,所以才失敗的,平時學習的時候,應該要知其然知其所以然才行,然后再多學學演算法,原理和一些計算機基礎就更完美了,并不是會做就行,基礎扎實,才能做得更好,
你只要在面試前,認真準備,充足準備,應該不會有多大的困難,其實大部分程式員面試大公司失敗的原因是自己準備不足,大公司去校招成功率比較大的原因是大學學的一些基礎沒有忘掉,而現在的你,只注重實戰,而不注重基礎,但是在拼技術的時代,基礎很重要,基礎和原理懂得的更多,做的東西才會更加牢固,
積累才是根本
前面說了,通過了解面試準則,面試準備,那都是一種臨時抱佛腳的方法,讓你快速面試成功的一種捷徑罷了,其實平時的學習和積累才是根本,通過了解大公司的要求,我們在小公司也應該時刻嚴格要求自己,不要只注重實戰,不要不在乎性能而僅僅去說我實作了就好,
幾點建議:
1、簡歷要如實寫,相關的知識點一定要爛熟于心,
2、基礎扎實,android和java相關的知識樹網上有很多資料,看過但讓你講出來未必能說的好,
3、提前總結,你還擅長什么其他技術?這種開放問題要看知識面了,
4、學會提問,你有什么問題要問我嗎?這種禮貌性問題也是一個了解對方的好機會,
5、良好的心里素質,無論遇到什么情況,面試官遲到、面試官態度冰冷說話不客氣、質疑你的回答等等各種問題都不要慌也不要排斥,一定要沉住氣,耐心積極的思考并回答對方的提問,
6、推薦幾本書,也是好幾次面試后發現里面涵蓋了大部分答案,《Android開發藝術探索》《Android原始碼設計模式-決議與實戰》《Android進階之光》《深入理解Java虛擬機》《Android音視頻開發》《Android進階解密》多看幾遍,
我們在平時的作業和學習的程序中,要時刻保持學習之心,不僅僅注重業務的實作,有時間拿起書來看看基礎和原理,了解一些原始碼,多做一些思考,其實總會慢慢進步的,
系統性復習更有效果
2020,可謂是招聘面試最難季,不少大廠,如騰訊、位元組的招聘名額明顯減少,面試門檻卻一再拔高,如果不用心準備,很可能就被面試官懟得啞口無言,過硬的技術功底是最起碼的考核要求,面試前做準備是很重要的,但技術是一點點積累的,就算你全會背了,面試過了,真正等到作業的時候還是會捉襟見肘的,所以踏實點吧騷年,
最后為了幫助大家深刻理解Android相關知識點的原理以及面試相關知識,這里放上相關的我搜集整理的24套騰訊、位元組跳動、阿里、百度2019-2020BAT 面試真題決議,我把大廠面試中常被問到的技術點整理成了視頻和PDF(實際上比預期多花了不少精力),包知識脈絡 + 諸多細節,
還有 高級架構技術進階腦圖 幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也可以分享給身邊好友一起學習,
領取:【PDF】
Android 基礎知識點

Java 基礎知識點

Android 原始碼相關分析

常見的一些原理性問題

騰訊、位元組跳動、阿里、百度等BAT大廠 2019-2020面試真題決議

以上內容均免費分享給大家,需要完整版的朋友,點這里可以看到全部內容,或者點擊 【這里】 查看獲取方式,
希望大家在今年的金九銀十里能夠發揮順利,進到自己想進的公司,共勉!
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/279621.html
標籤:其他
