已整理,最新面試題彙集!阿里、騰訊、百度、華為、京東、搜狗和滴滴!
前言
前一段時間和大牛們交流了一下,據反饋現在Android崗位也沒有以前那麼多了,沒這麼好找了,面寒冬季節,死掉企業的很多,在加之以前培訓機構大量的培訓人,初級程式設計師大量入場,導致供大於求,當然這不意味著飽和,只是市場更趨於合理一些(只要技術好不用怕的)。
最近結整理了下一些面試題目,希望對大家有所幫助,後期會不斷更新新增新的面試題。可以幫大家查漏不缺。以下是(阿里、騰訊、百度、華為、京東、搜狗和滴滴面試題彙集)
就算寫出答案也沒必要(我寫了部分面試答案),因為開發與實際答案會有所不同,再者怕誤導大家,所以這些面試題答案還是自己去理解吧!切記:不要背答案,多理解。
Android基礎
-
1、什麼是ANR 如何避免它?
-
如果耗時操作需要讓使用者等待,那麼可以在介面上顯示進度條。
-
2、View的繪製流程;自定義View如何考慮機型適配;自定義View的事件
-
3、分發機制;View和ViewGroup分別有哪些事件分發相關的回撥方法;自定義View如何提供獲取View屬性的介面;
-
4、Art和Dalvik對比;虛擬機器原理,如何自己設計一個虛擬機器(記憶體管理,類載入,雙親委派);JVM記憶體模型及類載入機制;記憶體物件的迴圈引用及避免;
-
4、ddms 和 traceView;
5、記憶體回收機制與GC演算法(各種演算法的優缺點以及應用場景);GC原理時機以及GC物件;記憶體洩露場景及解決方法;
-
6、四大元件及生命週期;ContentProvider的許可權管理(讀寫分離,許可權控制-精確到表級,URL控制);Activity的四種啟動模式對比;Activity狀態儲存於恢復;
-
7、什麼是AIDL 以及如何使用;
-
8、請解釋下在單執行緒模型中Message、Handler、Message Queue、Looper之間的關係;
-
9、Fragment生命週期;Fragment狀態儲存startActivityForResult是哪個類的方法,在什麼情況下使用,如果在Adapter中使用應該如何解耦;
-
10、AsyncTask原理及不足;ntentService原理;
-
11、Activity 怎麼和Service 繫結,怎麼在Activity 中啟動自己對應的Service;
-
12、請描述一下Service 的生命週期;
13、AstncTask+HttpClient與AsyncHttpClient有什麼區別;
-
14、如何保證一個後臺服務不被殺死;比較省電的方式是什麼;
15、如何透過廣播攔截和abort一條簡訊;廣播是否可以請求網路;廣播引起anr的時間限制;
-
16、程式間通訊,AIDL;
-
17、事件分發中的onTouch 和onTouchEvent 有什麼區別,又該如何使用?
-
18、說說ContentProvider、ContentResolver、ContentObserver 之間的關係;
-
19 、請介紹下ContentProvider 是如何實現資料共享的;
-
20、Handler機制及底層實現;
-
21、Binder機制及底層實現;
-
22、ListView 中圖片錯位的問題是如何產生的;
-
23、在manifest 和程式碼中如何註冊和使用BroadcastReceiver;
-
24、說說Activity、Intent、Service 是什麼關係;
-
25、ApplicationContext和ActivityContext的區別;
-
26、一張Bitmap所佔記憶體以及記憶體佔用的計算;
-
27、Serializable 和Parcelable 的區別;
-
28、請描述一下BroadcastReceiver;
-
29、請描述一下Android 的事件分發機制;
-
30、請介紹一下NDK;
-
31、什麼是NDK庫,如何在jni中註冊native函式,有幾種註冊方式;
-
32、AsyncTask 如何使用;
-
33、對於應用更新這塊是如何做的?(灰度,強制更新,分割槽域更新);
-
34、混合開發,RN,weex,H5,小程式(做Android的瞭解一些前端js等還是很有好處的);
-
35、什麼情況下會導致記憶體洩露;
-
36、如何對Android 應用進行效能分析以及最佳化;
-
37、說一款你認為當前比較火的應用並設計(直播APP);
-
38、OOM的避免異常及解決方法;
-
39、螢幕適配的處理技巧都有哪些;
-
40、兩個Activity 之間跳轉時必然會執行的是哪幾個方法?
-
40、Okhttp原理
-
41、Rxjava用法和原理
-
42,熱更新技術有哪些,知道的原理!
-
43、Activity啟動流程
-
44、Android記憶體管理
-
45、Android許可權管理
-
46、將一下7.0的新特性
-
47、說下你你們專案的架構
-
48、元件化的有點和具體實施方案
-
49、記憶體洩露檢測方法
-
50、Http協議,SSL握手機制。
“
Java基礎
-
1、集合類以及集合框架;HashMap與HashTable實現原理,執行緒安全性,hash衝突及處理演算法;ConcurrentHashMap;
-
2、程式和執行緒的區別;
-
3、Java的併發、多執行緒、執行緒模型;
-
4、什麼是執行緒池,如何使用?
-
答:執行緒池就是事先將多個執行緒物件放到一個容器中,當使用的時候就不用new 執行緒而是直接去池中拿執行緒即可,節省了開闢子執行緒的時間,提高的程式碼執行效率。
5、資料一致性如何保證;Synchronized關鍵字,類鎖,方法鎖,重入鎖;
6、Java中實現多型的機制是什麼;
-
7、如何將一個Java物件序列化到檔案裡;
8、說說你對Java反射的理解;
-
答:Java 中的反射首先是能夠獲取到Java 中要反射類的位元組碼, 獲取位元組碼有三種方法,
(1).Class.forName(className) -
(2).類名.class
-
(3).this.getClass()。
-
然後將位元組碼中的方法,變數,建構函式等對映成相應的Method、Filed、Constructor 等類,這些類提供了豐富的方法可以被我們所使用。
-
9、同步的方法;多程式開發以及多程式應用場景;
10、在Java中wait和seelp方法的不同;
-
答:最大的不同是在等待時wait 會釋放鎖,而sleep 一直持有鎖。wait 通常被用於執行緒間互動,sleep 通常被用於暫停執行。
-
11、synchronized 和volatile 關鍵字的作用;
-
答:
-
1)保證了不同執行緒對這個變數進行操作時的可見性,即一個執行緒修改了某個變數的值,這新值對其他執行緒來說是立即可見的。
-
2)禁止進行指令重排序。
12、volatile 本質是在告訴jvm 當前變數在暫存器(工作記憶體)中的值是不確定的,需要從主存中讀取;synchronized 則是鎖定當前變數,只有當前執行緒可以訪問該變數,其他執行緒被阻塞住。
(1).volatile 僅能使用在變數級別;synchronized 則可以使用在變數、方法、和類級別的
(2).volatile 僅能實現變數的修改可見性,並不能保證原子性;synchronized 則可以保證變數的修改可見性和原子性
(3).volatile 不會造成執行緒的阻塞;synchronized 可能會造成執行緒的阻塞。
(4).volatile 標記的變數不會被編譯器最佳化;synchronized 標記的變數可以被編譯器最佳化 -
13、伺服器只提供資料接收介面,在多執行緒或多程式條件下,如何保證資料的有序到達;
-
14、ThreadLocal原理,實現及如何保證Local屬性;
15、String StringBuilder StringBuffer對比;
16、你所知道的設計模式有哪些;
-
答:
-
Java 中一般認為有23 種設計模式,我們不需要所有的都會,但是其中常用的幾種設計模式應該去掌握。下面列出了所有的設計模式。需要掌握的設計模式我單獨列出來了,當然能掌握的越多越好。
總體來說設計模式分為三大類:
建立型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。
結構型模式,共七種:介面卡模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。
行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、直譯器模式。 -
17、Java如何呼叫c、c++語言;
-
18、介面與回撥;回撥的原理;寫一個回撥demo;
-
19、泛型原理,舉例說明;解析與分派;
-
20、抽象類與介面的區別;應用場景;抽象類是否可以沒有方法和屬性;
-
21、靜態屬性和靜態方法是否可以被繼承?是否可以被重寫?以及原因?
-
22、修改物件A的equals方法的簽名,那麼使用HashMap存放這個物件例項的時候,會呼叫哪個equals方法;
-
23、說說你對泛型的瞭解;
-
24、Java的異常體系;
-
25、如何控制某個方法允許併發訪問執行緒的個數;
26、動態代理的區別,什麼場景使用;
-
27、Dex載入過程和最佳化方式;
-
28、Jvm和Gc機制;
-
29、常用的設計模式。
“
資料結構與演算法
-
1、堆和棧在記憶體中的區別是什麼(資料結構方面以及實際實現方面);
2、最快的排序演算法是哪個?給阿里2萬多名員工按年齡排序應該選擇哪個演算法?堆和樹的區別;寫出快排程式碼;連結串列逆序程式碼;
3、求1000以內的水仙花數以及40億以內的水仙花數;
4、子串包含問題(KMP 演算法)寫程式碼實現;
5、萬億級別的兩個URL檔案A和B,如何求出A和B的差集C,(Bit對映->hash分組->多檔案讀寫效率->磁碟定址以及應用層面對定址的最佳化)
-
6蟻群演算法與蒙特卡洛演算法;
7、寫出你所知道的排序演算法及時空複雜度,穩定性;
8、百度POI中如何試下查詢最近的商家功能(座標映象+R樹)。
-
9、遍歷二叉樹
-
10、自己集合實現一個佇列
-
11、自己實現執行緒安全類
-
12、快速排序和冒泡的排序,怎麼轉換一下。
“
其它
-
1、死鎖的四個必要條件;
2、常見編碼方式;utf-8編碼中的中文佔幾個位元組;int型幾個位元組;
3、實現一個Json解析器(可以透過正則提高速度);
-
4、MVC MVP MVVM; 常見的設計模式;寫出觀察者模式的程式碼;
-
5、TCP的3次握手和四次揮手;TCP與UDP的區別;
-
6、HTTP協議;HTTP1.0與2.0的區別;HTTP報文結構;
-
7、HTTP與HTTPS的區別以及如何實現安全性;
-
8、都使用過哪些框架、平臺;
9、都使用過哪些自定義控制元件;
10、介紹你做過的哪些專案;
“
非技術問題彙總
-
1、研究比較深入的領域有哪些;
-
2、對業內資訊的關注渠道有哪些;
-
3、最近都讀哪些書;
-
4、自己最擅長的技術點,最感興趣的技術領域和技術點;
-
5、專案中用了哪些開源庫,如何避免因為引入開源庫而導致的安全性和穩定性問題;
-
6、實習過程中做了什麼,有什麼產出;
-
7、5枚硬幣,2正3反如何劃分為兩堆然後透過翻轉讓兩堆中正面向上的硬8幣和反面向上的硬幣個數相同;
-
8、時針走一圈,時針分針重合幾次;
-
9、N * N的方格紙,裡面有多少個正方形;
-
10、現在下載速度很慢,試從網路協議的角度分析原因,並最佳化(網路的5層都可以涉及)。
“
HR問題彙總
-
1、您在前一家公司的離職原因是什麼?
-
2、講一件你印象最深的一件事情;
-
3、介紹一個你影響最深的專案;
-
4、介紹你最熱愛最擅長的專業領域;
-
5、公司實習最大的收穫是什麼;
-
6、與上級意見不一致時,你將怎麼辦;
-
7、自己的優點和缺點是什麼?並舉例說明?
-
8、你的學習方法是什麼樣的?實習過程中如何學習?實習專案中遇到的最9、大困難是什麼以及如何解決的;
-
10、說一件最能證明你能力的事情;
-
11、針對你你申請的這個職位,你認為你還欠缺什麼;
-
12、如果透過這次面試我們單位錄用了你,但工作一段時間卻發現你根本13、不適合這個職位,你怎麼辦;
-
14、專案中遇到最大的困難是什麼?如何解決的;
-
15、你的職業規劃以及個人目標;未來發展路線及求職定位;
-
16、如果你在這次面試中沒有被錄用,你怎麼打算;
-
17、評價下自己,評價下自己的技術水平,個人程式碼量如何;
-
18、透過哪些渠道瞭解的招聘資訊,其他同學都投了哪些公司;
-
19、業餘都有哪些愛好;
-
20、你做過的哪件事最令自己感到驕傲;
-
21、假如你晚上要去送一個出國的同學去機場,可單位臨時有事非你辦不可,你怎麼辦;
-
22、就你申請的這個職位,你認為你還欠缺什麼;
-
23、當前的offer狀況;如果BATH都給了offer該如何選;
24、你對一份工作更看重哪些方面?平臺,技術,氛圍,城市,money;
-
25、理想薪資範圍;杭州崗和北京崗選哪個;
26、理想中的工作環境是什麼;
-
27、談談你對跳槽的看法;
28、說說你對行業、技術發展趨勢的看法;
-
29、實習過程中周圍同事/同學有哪些值得學習的地方;
-
30、家人對你的工作期望及自己的工作期望;
31、如果你的工作出現失誤,給本公司造成經濟損失,你認為該怎麼辦;
-
32、若上司在公開會議上誤會你了,該如何解決;
-
32、是否可以實習,可以實習多久;
-
33、在五年的時間內,你的職業規劃;
-
34、你看中公司的什麼?或者公司的那些方面最吸引你。
總結
學習技術是一條慢長而艱苦的道路,不能靠一時激情,也不是熬幾天幾夜就能學好的,必須養成平時努力學習的習慣。所以:貴在堅持!
我將自己手上的學習內容整理了一下,分享給大家,免費領取 安卓進階學習影片,原始碼,面試資料
大牛一起交流討論技術地址:【708683109】。 (包括跨平臺開發(Flutter,Weex)、java基礎與原理,自定義控制元件、NDK、架構設計、效能最佳化、完整商業專案開發等)
阿里P7系列影片教程.
面試各大專題整理:面試指南
最後有話說
放下你的浮躁,放下你的懶惰,靜下心來好好做你該做的事,該好好努力了!不論做什麼事,相信你自己,別讓別人的一句話將你擊倒。
如果你找不到一個堅持的理由,你就必須找到一個重新開始的理由。記住一句話:越努力,越幸運。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952849/viewspace-2675649/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 阿里、騰訊、百度、華為、京東、搜狗和滴滴最新面試題彙集阿里面試題
- 2016年未,騰訊,百度,華為,搜狗和滴滴面試題彙總面試題
- Java面試專屬視訊 最新Java阿里京東美團滴滴面試題及答案教程Java阿里面試題
- 阿里、百度、騰訊、滴滴、華為、京東、聯想 KDD2020公司論文大盤點阿里
- 美團、滴滴、阿里、京東的 Dubbo / JVM / Spring 面試題及答案(2)阿里JVMSpring面試題
- 十月上旬百度,阿里巴巴,迅雷搜狗最新面試七十題(第201-270題)阿里面試
- 前端面試題整理彙總前端面試題
- 阿里、京東、美團等主流網際網路公司的最新面試題出爐阿里面試題
- 最新PHP面試題彙總(附答案)PHP面試題
- 最新Android面試題整理 5月Android面試題
- 2018年前端大廠面試題(百度,阿里,滴滴,去哪兒網.....)前端面試題阿里
- 【秋招】京東_資料分析崗_面試題整理面試題
- Android 面試題,百度,小米,阿里面試題Android面試題阿里
- 最新阿里Java面試題,這些面試題你會嗎?阿里Java面試題
- 2017阿里,百度,京東java面試+筆試大合集,這些面試題你都會嗎?阿里Java筆試面試題
- 騰訊往屆筆試面試題整理大全筆試面試題
- 前端面試問題小彙集前端面試
- 騰訊、阿里Java高階面試真題彙總,3天拿到網易Java崗offer阿里Java面試
- 【BAT(百度,阿里,騰迅)面試題】BAT阿里面試題
- 《網路安全法》通過審議後騰訊百度滴滴京東首談網路安全
- 阿里歷年經典Java面試題彙總阿里Java面試題
- 精選11道Java技術面試題並有答案(包含部分阿里和華為的面試題)Java面試題阿里
- 最新阿里雲面試題,mark一下阿里面試題
- 2020年最新整理-Java面試題大全Java面試題
- Java高頻面試題(2023最新整理)Java面試題
- 100道Java高頻面試題(阿里面試官整理)Java面試題阿里
- 阿里、網易、滴滴共十次前端面試碰到的問題阿里前端面試
- 百度、京東、阿里、滴滴等網際網路公司的程式設計師年終獎都發多少?阿里程式設計師
- 阿里巴巴Java面試題錦集阿里Java面試題
- 2020百度前端面試題整理前端面試題
- 2023最新MySQL高頻面試題彙總MySql面試題
- 2017年前端面試題整理彙總100題前端面試題
- 京東和360面試面試
- 最新最全百度,阿里面試題:Java語言+APP開發+效能優化+NDK+Flutter阿里面試題JavaAPP優化Flutter
- 面試題整理面試題
- 一箇中專生的逆襲之旅(如何做到收到阿里、騰訊、滴滴等面試邀請)阿里面試
- 最全技術面試180題:阿里11面試+網易+百度+美團!面試阿里
- 2018最新《BAT Java必考面試題集》BATJava面試題