主頁 > 軟體設計 > Android開發如何準備技術面試(含Android面試押題)

Android開發如何準備技術面試(含Android面試押題)

2020-11-26 18:45:11 軟體設計

今年毋庸置疑是找作業的寒冬,每一個出來找作業的同學都是值得尊敬的,現在找作業,雖然略難,但是反過來看也會逼迫我們成為更加優秀的自己,

但是不管是旺季還是寒冬,有一些優秀的同學找作業還是挺順利的,所以說還是得提高我們自己的硬實力,

本文主要解答這些問題,如果說你想知道以下幾點,就可以看下去了

  • 當下好找作業嘛
  • 如何寫簡歷
  • 如何挑選靠譜的公司
  • 我的經驗水平能拿多少的工資
  • 問到專案中的技術難點怎么回答
  • 2021年Android面試押題
  • 如何和 HR 聊天,比如談錢等等

一、當下好找作業嘛

想必大家現在經常能看到某某公司又裁員了,會擔心是不是找不到作業了,其實總的來說雖然當下的環境確實不怎么好,但是有裁員的公司,也肯定有招人的公司,并且招人的公司一定比裁員的公司多得多,

那么再來回答這個問題「當下好不好找作業」,對于技術好的人來說,永遠不會擔心這個問題,但是對于技術不那么好的人來說,確實需要一些技巧才能比別人有更多的機會,比如說寫一封清晰明了的簡歷,在面試前好好準備等等,

總的來說,機會是留給有準備的人,無論環境好與差,認真準備的你肯定會比別人有更多的機會,

二、如何寫簡歷

平時有在做修改簡歷的收費服務,在公司里也會當個面試官啥的,總的來說也算看過很多簡歷了,但是大部分人的簡歷的套路都是一樣的,專案用了什么技術堆疊,做了什么功能,總的來說就是流水賬,

那么一旦你寫出有別于這類套路的簡歷,你的簡歷必然會被用人方多看幾眼,增加點成功率也是必然的,

一般來說我會這樣建議別人寫簡歷:

  • 全文杜絕任何的精通字眼,如果你真的精通,不需要投簡歷找作業了,

  • 簡歷控制在兩頁左右,不需要找什么簡歷模板,直接 Markdown 生成 PDF 檔案,面試官不在意你的簡歷有多好看,他更在意的是你的簡歷內容,

  • 任何英文單詞注意大小寫,數字以及英文注意與中文之間有空格,

  • 專案中無需介紹這個專案到底有啥功能,單刀直入這個專案中最值得說的內容,比如遇到的 Bug,自己的思考等等,但是可能很多人會說,業務很簡單沒什么好說的或者壓根沒遇到什么問題,遇到這個問題的時候,首先跳脫出業務的框架,去思考其他的問題,相信每個人都寫過組件,但是對于如何設計一個好的組件來說就不是每個人都能做的事情了,

  • 寫專案經驗最好按照這樣的思路:遇到了什么問題,如何解決以及結果,

  • 假設簡歷上的每個技術點面試官都會問到,斟酌所有的知識點,保證都能回答,

三、如何挑選靠譜的公司

一家靠譜的公司,一定是以下幾點加起來的:牛逼的核心管理層、不錯的 idea、高額的融資、有前景的行業,

前兩點對于求職者來說基本是黑盒,因此我們只能從后面兩點來挑選公司了,

早期的融資越高,領投的公司越牛逼,那么這家公司靠譜的幾率越大,因為這些公司的決策人都不是傻子,人家肯定有充足的理由才會選擇相信并投錢給這家公司,

另外一個有前景的行業也是必須條件,如果你不知道啥是有前景的行業,就從與人息息相關的行業挑選吧,比如吃、住、行、教育等等,

這時候你可能會說,那我如果了解到一家公司的這些情況呢?那么「天眼查」可以完美解決你這個問題,我們可以通過這個網站詳細了解到一家公司的融資、行業、競品、法律風險、管理層、產品等等資訊,

四、我的經驗水平能拿多少的工資

對于這個問題,我真的很想說多少經驗真的和多少工資沒多大關系,

相同的一年經驗,有人只能拿 10K,但是有人卻能拿到 20K,原因就在于兩個人的技術能力不一樣,

你技術好,就能比別人多要工資;你技術一般,就只能拿少點的工資,這是一個很現實的問題,所以工資只與技術掛鉤,而不是你所謂的經驗,

如果只是想了解行業平均薪水,直接去看當地的企業給出的工資是多少就好了,如果覺得自己薪水不符合行業平均薪水,就勇敢的跳槽唄,

五、問到專案中的技術難點怎么回答

對于這個問題來說,面試官考察的就是你的學習能力以及解決問題的能力,

很多人遇到這個問題會很懵逼,感徑訓本啥問題都谷歌解決了,當然如果你真的有遇到不是馬上能通過谷歌解決的問題便是極好的,按照描述問題、如何解決問題、結果這幾個步驟來回答就行了,

那么如果你覺得你的專案真的很簡單,沒有什么可說的話,就按照以下的幾個思路來聊這個話題,比如說你之前從沒接觸過某個技術,你是如何去學習這個技術的,在學習的程序中遇到了什么問題,怎么解決的,比如說你寫了這個專案,自己有了什么感悟、想法,

因為這道題目面試官不是說一定要聽你講出專案里到底遇到了什么難的問題,而是考察你的學習能力以及解決問題的能力,即使你沒有什么干貨可以說,說點自己的學習程序、挫折、想法感悟也是可以的,畢竟總比說感覺都很簡單來的好,

六、2021年Android面試押題

Java相關

1.容器(HashMap、HashSet、LinkedList、ArrayList、陣列等)

2.記憶體模型

3.垃圾回收演算法(JVM)

4.垃圾回識訓制和呼叫 System.gc()的區別?

5.類加載程序(需要多看看,重在理解,對于熱修復和插件化比較重要)

6.反射

7.多執行緒和執行緒池

8.設計模式(六大基本原則、專案中常用的設計模式、手寫單例等)

9.Java 四大參考

10.Java 的泛型

11.final、finally、finalize 的區別

12.介面、抽象類的區別

(Java相關答案地址)

Android 相關

1.自定義 View

2.事件攔截分發

3.解決過的一些性能問題,在專案中的實際運用

4.性能優化工具

5.性能優化 (講講你自己專案中做過的性能優化)

6.Http[s]請求慢的解決辦法(DNS、攜帶資料、直接訪問 IP)

7.快取自己如何實作(LRUCache 原理)

8.圖形影像相關:OpenGL ES 管線流程、EGL 的認識、Shader 相關

9.SurfaceView、TextureView、GLSurfaceView 區別及使用場景

10.影片、差值器、估值器(Android中的View影片和屬性影片 - 簡書、Android 影片 介紹與使用)

11.MVC、MVP、MVVM

12.Handler、ThreadLocal、AsyncTask、IntentService 原理及應用

13.Gradle(Groovy 語法、Gradle 插件開發基礎)

14.熱修復、插件化

15.組件化架構思路

16.系統打包流程

17.Android 有哪些存盤資料的方式,

18.SharedPrefrence 原始碼和問題點;

20.sqlite 相關

21.如何判斷一個 APP 在前臺還是后臺?

22.AMS 、PMS

23.Activity 啟動流程,App 啟動流程

24.Binder 機制(IPC、AIDL 的使用)

25.為什么使用 Parcelable,好處是什么?

26.Android 影像顯示相關流程,Vsync 信號等

(Android相關答案地址)

原始碼理解

  • Glide :加載、快取、LRU 算法 (如何自己設計一個大圖加載框架) (LRUCache 原理)

  • EventBus

  • LeakCanary

  • ARouter

  • 插件化(不同插件化機制原理與流派,優缺點,局限性)

  • 熱修復

  • RXJava (RxJava 的執行緒切換原理)

  • Retrofit (Retrofit 在 OkHttp 上做了哪些封裝?動態代理和靜態代理的區別,是怎么實作的)

  • OkHttp

(原始碼相關答案地址)

演算法與資料結構

  • 時間復雜度 / 空間復雜度

  • 常用的排序演算法有哪些?

  • 字串反轉

  • 鏈表反轉(頭插法)

  • 如何查找第一個只出現一次的字符(Hash查找)

  • 如何查找兩個子視圖的共同父視圖?

  • 無序陣列中的中位數(快排思想)

  • 如何給定一個整數陣列和一個目標值,找出陣列中和為目標值的兩個數,

  • 二叉樹前序、中序、后序遍歷

  • 最大 K 問題

  • 廣度、深度優先搜索演算法

  • String 轉 int,核心演算法就三行代碼,不過臨界條件很多,除了判空,還需要注意負數、Integer 的最大最小值邊界等;

  • 如何判斷一個單鏈表有環?

  • 100 億個單詞,找出出現頻率最高的單詞,要求幾種方案;

  • 鏈表每 k 位逆序;

  • 鏡像二叉樹;

  • 找出一個無序陣列中出現超過一半次數的數字;

  • 計算二叉樹的最大深度,要求非遞回演算法,

  • String 方式計算加法,

(演算法與資料結構相關答案地址)

網路

1.網路框架對比和原始碼分析

  1. 網路七層協議有哪些?

  2. Http 和 Https 的區別?Https為什么更加安全?

  3. HTTPS的連接建立流程

  4. 解釋一下 三次握手 和 四次揮手

  5. TCP 和 UDP的區別

  6. Cookie和Session

  7. DNS是什么?

  8. DNS決議程序

10.HTTP報文結構

11.HTTP與HTTPS的區別以及如何實作安全性

12.如何驗證證書的合法性?

13.https中哪里用了對稱加密,哪里用了非對稱加密,對加密演算法(如RSA)等是否有了解?

14.client如何確定自己發送的訊息被server收到?

15.談談你對WebSocket的理解

16.WebSocket與socket的區別

17.談談你對安卓簽名的理解,

18.請解釋安卓為啥要加簽名機制?

19.視頻加密傳輸

20.App 是如何沙箱化,為什么要這么做?

21.權限管理系統(底層的權限是如何進行 grant 的)?

(網路相關答案地址)

Kotlin 相關

1.從原理分析Kotlin的延遲初始化: lateinit var和by lazy

2.使用Kotlin Reified 讓泛型更簡單安全

3.Kotlin里的Extension Functions實作原理分析

4.Kotlin系列之頂層函式和屬性

5.Kotlin 兼容 Java 遇到的最大的 “坑”

6.Kotlin 的協程用力瞥一眼

7.Kotlin 協程「掛起」的本質

8.到底什么是「非阻塞式」掛起?協程真的更輕量級嗎?

9.資源混淆是如何影響到Kotlin協程的

10.Kotlin Coroutines(協程) 完全決議

11.破解 Kotlin 協程

(Kotlin相關答案地址)

Flutter相關

1.Flutter 原理與實踐

2.揭秘 Flutter Hot Reload(原理篇)

3.Flutter 動態化探索

4.Flutter 如何和 Native 通信-Android 視角

5.深入理解 Flutter Platform Channel

6.Flutter Engine 編譯指北

7.深入理解 Flutter 多執行緒

8.Flutter 狀態管理 - 初探與總結

9.Flutter | 狀態管理指南篇——Provider

10.深入理解Flutter應用啟動

11.Flutter渲染機制—UI執行緒

(Flutter相關答案地址)

七、如何和 HR 聊天,比如談錢等等

首先你面到 HR 了,說明你基本已經成為備選人之一了,這時候 HR 會和你聊很多問題,這些問題都是為了了解你的一些個人情況的,比如說性格啦、反應能力、情商等等,另外大部分公司的 HR 并沒有一票否決權,面試沒有成功多半是有更好的備選人而不是因為 HR 把你卡掉了,

然后說到談錢的一個問題,首先以最少的工資招到需要的人肯定是 HR 的考核之一,所以壓價是很正常的一個事情,并且上家公司的薪資也是一個很重要的參考,一般來說漲薪幅度在 30% 以上是很牛逼的事情了,通常都在 20% 左右,

你的開價一般就是 offer 的上限了,考慮到壓價的情況,你可以在原本期望薪水上上浮 1K 左右,然后可以根據面試的情況來有選擇性的開價,

  • 面的不錯,本來想要 16K 的,那么就多要個 1-2K 沒啥問題
  • 面的一般,那就報 16 K 吧
  • 面的一般或者不大好,但是又很想進這家公司,可以酌情下降 1-2K,這個主要還是看自己
  • 不怎么想去這家公司,隨意開價

八、結語

我一直覺得技術面試不是考試,考前背背題,發給你一張考卷,答完交卷等通知,

首先,技術面試是一個 認識自己 的程序,知道自己和外面世界的差距,

更重要的是,技術面試是一個雙向了解的程序,要讓對方發現你的閃光點,同時也要 試圖去找到對方的閃光點,因為他以后可能就是你的同事或者領導,所以,面試官問你有什么問題的時候,不要說沒有了,要去試圖了解他的作業內容、了解這個團隊的氛圍,

找作業無非就是看三點:和什么人、做什么事、給多少錢,要給這三者在自己的心里劃分一個比例,

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/227860.html

標籤:其他

上一篇:2019 CCPC 秦皇島: MUV LUV EXTRA

下一篇:這是什么神仙資料啊!騰訊T4-1架構師告訴你啃爛這套“核心知識”+“高級面試”,,輕松年薪50W

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more