Android 面試題,百度,小米,阿里面試題

Dominic本尊發表於2018-05-05

關注公眾號:QXF069

基礎問題相關

1、介面的意義-百度

2、抽象類的意義-百度

3、內部類的作用-樂視

4、Java 虛擬機器的特性-百度-樂視

5、哪些情況下的物件會被垃圾回收機制處理掉-美團-小米

6、程式和執行緒的區別-獵豹-美團

7、java中==和equals和hashCode的區別-樂視

8、HashMap的實現原理-美團

9、string-stringbuffer-stringbuilder區別-小米-樂視-百度

10、什麼導致執行緒阻塞-58-美團

11、多執行緒同步機制-獵豹

12、ArrayMap對比HashMap

13、hashmap和hashtable的區別-樂視-小米-360

14、容器類之間的區別-樂視-美團

15、抽象類介面區別-360

Android 方面

16、如何匯入外部資料庫?

17、本地廣播和全域性廣播有什麼差別?

18、intentService作用是什麼,AIDL解決了什麼問題-小米

19、Ubuntu編譯安卓系統-百度

20、LaunchMode應用場景-百度-小米-樂視

21、Touch事件傳遞流程-小米

22、View繪製流程-百度

23、多執行緒-360

24、Handler,Thread和HandlerThread的差別-小米

25、執行緒同步-百度

26、什麼情況導致記憶體洩漏-美團

27、ANR定位和修正

28、什麼情況導致oom-樂視-美團

29、Service與Activity之間通訊的幾種方式

30、如何保證service在後臺不被Kill

31、Requestlayout,onlayout,onDraw,DrawChild區別與聯絡-獵豹

32、Android動畫框架實現原理

33、Android為每個應用程式分配的記憶體大小是多少-美團

34、優化自定義view百度-樂視-小米

36、volley-美團-樂視

37、Glide原始碼解析

38、Android設計模式

39、Android屬性動畫特性-樂視-小米

40、Activity Window View三者的差別,fragment的特點-360

41、invalidate和postInvalidate的區別及使用-百度

42、LinearLayout和RelativeLayout效能對比-百度

43、View重新整理機制-百度-美團

44、架構設計-搜狐

騰訊公司面試題精選

45、2000萬個整數,找出第五十大的數字?

46、從網路載入一個10M的圖片,說下注意事項

47、自定義View注意事項

48、專案中常用的設計模式

49、JVM的理解

阿里面試題精選

50、程式間通訊方式

51、什麼是協程

52、記憶體洩露是怎麼回事

53、程式計數器,引到了邏輯地址(虛地址)和實體地址及其對映關係

54、陣列和連結串列的區別

55、二叉樹的深度優先遍歷和廣度優先遍歷的具體實現

56、堆的結構

57、bitmap物件的理解

58、什麼是深拷貝和淺拷

59、物件鎖和類鎖是否會互相影響

60、looper架構

61、自定義控制元件原理

62、自定義控制元件原理

63、ActivityThread,Ams,Wms的工作原理

64、Java中final,finally,finalize的區別

65、一個檔案中有100萬個整數,由空格分開,在程式中判斷使用者輸入的整數是否在此檔案中。說出最優的方法

66、兩個程式同時要求寫或者讀,能不能實現?如何防止程式的同步?

67、volatile 的意義?

68、燒一根不均勻的繩,從頭燒到尾總共需要1個小時。現在有若干條材質相同的繩子,問如何用燒繩的方法來計時一個小時十五分鐘呢?

69、手寫程式碼:大整數加法

70、簡歷上提到使用Butterknife,Butterknife是什麼階段註解?註解的生命週期瞭解嗎?

71、簡歷中提到使用Okhttp做網路通訊,說一下Okhttp攔截器

72、Http和Https區別,沒有CA證照可以使用Https訪問嗎

73、TCP在是哪一層的協議,三次握手過程

74、瞭解什麼加密演算法,說一說對稱加密和非對稱加密

75、瞭解JVM嗎,說說垃圾回收機制

76、瞭解apk的編譯過程嗎,簡單說了一下dex

77、Java中Collection的常用實現類,map的實現類

78、聊聊Hashmap和Hashtable區別

79、Hashmap的底層實現方式,如何解決雜湊衝突,除了這種解決方式還有沒有其他解決方式

80、很多網站像新浪微博網址都有短地址,如果讓你實現怎麼做

81、如何判斷兩個單連結串列相交

82、如何使用兩個或多個棧模擬佇列

83、智力題:現在有一個抽獎活動,從8點到10點這段時間會有若干個使用者參與抽獎,現在有10個獲獎名額,但沒有足夠大的空間儲存所有的資料,要求每個使用者等概率中獎,且10點活動截止瞬間開獎。

二面(50分鐘)

84、手寫程式碼:刪除單連結串列倒數第x個結點

85、手寫程式碼:z已知,在無序陣列中找到兩個數x和y,使x+y=z(使用雜湊表以空間換時間)

86、有沒有看過Handler的原始碼,當MessageQueue中沒有Message會怎麼處理

87、說一下執行緒與程式,android跨程式通訊的方式,自己有沒有用過

88、講一講AIDL原理

89、Service有幾種啟動方式,有什麼區別

90、activity的宣告週期和啟動模式,舉了一個實際場景問點選back之後的跳轉

91、activityA跳轉到B過程中A,B的生命週期函式呼叫順序

92、自定義View的相關知識

經驗分享 在之前一家網際網路的時候我作為面試官接觸過幾十個面試者,能左右我是不是通過這個人的,主要因素還是這個人對技術的熱愛程度。因為有這種極客精神,做任何技術上的事情都是時間上的問題,所以面試過程中要儘可能表現出對技術的熱愛。

那除了這種因素外,我們怎麼做才能更大概率的進入一線公司呢?

還有一個比較重要的因素就是知識的深度。我認為深度優於廣度,廣度通過看各種文章都能瞭解,但一旦碰到實際問題,這時候往往靠的是自己的知識深度。比如,Java程式猿都知道Java是跨平臺的,因為會編譯成和平臺無關的位元組碼,但是有多少人會知道是怎麼編譯的?如果不知道虛擬機器執行原理,就不可能做出手淘的Atlas容器框架。再比如,很多人知道四大元件職責都是什麼,還會些效能優化,但是如果不知道Framework層系統服務原理,就做不出外掛化框架。

因為一線公司業務的複雜度也決定了業務的深度,如果沒有較好的深度探究能力,是很難勝任的,所以知識的深度也很重要。

極客精神加上某一領域知識的深度能力,就可以達到一線公司標準了。面試中非理性因素也有較大比重,但是這種東西是我們沒辦法掌控的,如果因為這種因素失敗了,也沒必要氣餒。我認為能力是和回報成正比的,就算此刻沒發生,下一刻也會出現,只要掌握了我們該掌握的能力,總有一天會進入我們理想的公司。

關注公眾號:

Android 面試題,百度,小米,阿里面試題

相關文章