更新時間:2024-08-19 10:33:05作者:佚名
我非常認同作者寫周日記和做讀書筆記的習慣。
在之前的實習隨筆 | 周記(五)中我提到過,因為實習忙碌,加上早早一批秋招的結束,心里很是焦躁和苦惱。于是經(jīng)過各種思想斗爭和考量,最終在項目新版本上線時下定決心辭職,開始全身心投入秋招。
本以為這一趟行程會很艱難網(wǎng)校頭條,做好了打持久戰(zhàn)的準備,結果出乎意料的順利,這下不打算再找了,終于可以填坑寫總結了!
在2018年Android暑期實習面試總結中我介紹了我的個人情況、自學經(jīng)歷、校招流程以及復習重點,這部分就不再贅述了。所以本文會先以日歷的形式回顧一下秋招的流程,方便大家參考某廠的處理進度;然后簡單說一下我在美團的實習經(jīng)歷,也算是對《實習隨筆》系列文章的一個總結;接著我會對春秋招Android面試題庫進行歸納總結,由于時間原因為什么說提前批是個坑,后續(xù)會出一個《問答》系列;最后做個總結,期待開啟新的征程~
校園招聘日歷
在美團實習的最后一周,項目進入測試階段,比開發(fā)階段容易很多,于是就開始修改簡歷,投簡歷,復習,復習內容主要包括個人博客和春招總結筆記。
但各家公司處理簡歷的速度出乎我的意料,投遞一周就接到各種面試通知,這一波操作來得快去得也快,目前已經(jīng)收到BAT、美團、vivo、一點資訊的(口頭)offer,愛奇藝也已完成offer,正在等結果。
中間出了個差錯,在牛客投簡歷給今日頭條HR,結果被誤投進社招池,還發(fā)了面試邀請……差點就投了Android高級工程師,emmm
以下是從開始準備到等待offer的整個秋招日程安排:
日期詳情
8.6(星期一)
修改簡歷,申請美團實習轉職
8.7~8.9
完成簡歷提交及審核
8.10(星期五)
辭職
收到vivo的面試通知
8.11(星期六)
網(wǎng)易筆試
8.13(星期一)
阿里端:電話最少
8.14(星期二)
收到百度、愛奇藝、今日頭條的面試通知
8.15(星期三)
百度一號:視頻 35分鐘
阿里巴巴第二次面試:電話最少
收到一點資訊的面試通知
vivo端:視頻25分鐘
8.16(星期四)
百度現(xiàn)場面試:第二輪面試60分鐘,第三輪面試30分鐘
收到網(wǎng)易的面試通知(放棄)
vivo hr face:視頻 20分鐘
8.17(星期五)
阿里三面:手機分鐘
收到騰訊的面試通知
8.18(星期六)
一點資訊現(xiàn)場面試:第一輪面試40分鐘,第二輪面試50分鐘,第三輪面試20分鐘
騰訊第一輪:手機分鐘
8.19(星期日)
vivo線下交流會
8.20(星期一)
愛奇藝:現(xiàn)場70分鐘
一點新聞HR:電話分鐘
8.21(星期二)
收到百度的郵件說我通過了面試+文化評估
8.22(星期三)
愛奇藝第二次采訪:視頻30分鐘
收到vivo的意向書
8.23(星期四)
阿里HR面試:40分鐘視頻+主管口頭offer
8.28(星期二)
第二次騰訊面試:電話最少
8.29(星期三)
愛奇藝第三輪:視頻30分鐘
收到快手面試通知(放棄)
8.30(星期四)
騰訊HR面試:15分鐘視頻+主管口頭offer
8.31(星期五)
一點資訊發(fā)送招聘意向
總結:面試部門及整個流程
實習經(jīng)歷
兩個月的實習轉眼就過去了,有幸得到了部門老大的認可,并獲準留下。本節(jié)簡單總結一下這段短暫卻充實的實習,也算是“實習隨筆”系列文章的總結(想看面試心得的可以跳過此節(jié))。
實習單位:北京/美團/新零售事業(yè)群/閃購事業(yè)部/賦能事業(yè)群
一、工作總結
b.學習后總結
c. 收獲與成長
這是我第一次走出校園,走向社會,這對我來說意義重大,所以我很珍惜在美團的每一天。
總之在這里收獲的不僅僅是知識和技術,還有感悟和人情味,很喜歡這里~
d. 不足與反思
與實習前的預期相比,我已經(jīng)完成了大部分計劃,但也有一些沒有達到我的預期:
問題庫
之前說過為什么說提前批是個坑,我復習的范圍無非就是我個人的技術博客和整理過的筆記,考慮到手寫筆記不利于保存,打算重新整理一下放到網(wǎng)上,時間緊迫,這里就只有問題了,后面會有一系列專題提供參考答案。
當然我覺得看面試經(jīng)驗主要還是為了找出差距,然后去彌補。也要有一定的知識儲備和學習體系,而不是死記硬背,靠死記硬背問題和答案來應付面試。只有真正學到的東西,才能談吐流利,更有自信。
(注:部分重點有文字鏈接,表示有專門的文章講解)
a.Android
問:你能解釋一下 Activity 的生命周期嗎?
問:onStart() 和 onResume()/onPause() 和 onStop() 有什么區(qū)別?
Q:Activity A啟動另一個Activity B時會回調哪些方法?如果Activity B完全透明會怎樣?如果啟動了一個Dialog會怎樣?
問:onSaveInstanceState() 方法怎么樣?它在什么時候被調用?
問: onSaveInstanceState() 和 onPause() 有什么區(qū)別?
Q: 配置改變時如何避免 Activity 重建?
Q:低優(yōu)先級的Activity因為內存不足被回收后,如何恢復到銷毀前的狀態(tài)?
Q:Activity的四種啟動模式分別是什么?(有時會提出一個實際的問題,來分析Activity在返回棧的情況)
Q:說說singleTop和singleTask的區(qū)別以及適用場景
Q:onNewIntent()什么時候調用?
問: Activity 啟動模式的標志是什么?
Q:如何啟動其他應用的Activity?
Q:Activity啟動流程?
Q:我們講一下Fragment的生命周期?
問:Activity 和 Fragment 有哪些相同點和不同點?
問:Activity和Fragment什么關系?
問:什么時候會考慮使用 Fragment?
問:您能談談服務生命周期嗎?
問:啟動服務有哪兩種方式?它們有什么區(qū)別?
Q:當Activty啟動Service時,綁定時會回調什么方法?此時如何回調Service的destroy()方法?
問:Service 如何與 Activity 通信?
問:您使用過哪些系統(tǒng)服務?
Q:Service 中可以做耗時操作嗎?可以的話該如何處理?
Q:AlarmManager如何實現(xiàn)定時?
Q:什么是前臺服務?它和普通服務有什么不同?如何啟動前臺服務?
Q:你知道ActivityManagerService嗎?它起什么作用?
Q:如何保證Service不被kill?
問:廣播有哪幾種形式?它們有什么特點?
問:廣播電臺的注冊類型有哪兩種?它們有什么區(qū)別?
Q:你對ContentProvider了解多少?
問:Android提供了哪些持久數(shù)據(jù)存儲的方法?
問:如何在 Java 中讀寫 I/O 流?
Q:SharePreferences 什么時候適用?使用時需要注意什么?
問:您知道 SQLite 中的事務處理嗎?它是如何完成的?
問:有沒有什么好的方法可以用SQLite進行批量操作?
問:如果我想刪除SQLite表中的一個字段,該怎么辦?
Q: 使用SQLite時有哪些優(yōu)化操作?
Q:Android中進程和線程是什么關系?有什么區(qū)別?
Q:為什么需要IPC?多進程通信可能出現(xiàn)什么問題?
Q:什么是序列化?Serializable 接口和 Parcelable 接口有什么區(qū)別?為什么推薦后者?
問:為什么要在Android中添加Binder作為主要的IPC方式?
Q:使用Binder進行數(shù)據(jù)傳輸?shù)木唧w流程是怎樣的?
問:ServiceManager 在 Binder 框架中起什么作用?
問:Android中基于Binder的IPC方式有哪些?能簡單比較一下嗎?
Q:知道AIDL嗎?原理是什么?多個模塊使用AIDL的情況如何優(yōu)化?
Q:什么是 MotionEvent?它包含多少個事件?在什么條件下會發(fā)生?
Q:scrollTo()和scrollBy()有什么區(qū)別?
問:Scroller 中最重要的兩個方法是什么?它們的主要用途是什么?
Q:能講一下View的事件分發(fā)機制嗎?
Q:如何解決View的滑動沖突?
問:您能談談 View 的工作原理嗎?
Q: MeasureSpec 是什么?它有什么作用?
Q: 自定義View/ViewGroup需要注意什么?
問:onTouch()、onTouchEvent()、onClick()三者之間有什么關系?
問:SurfaceView 和 View 有什么區(qū)別?
Q:invalidate() 和 postInvalidate() 有什么區(qū)別?
Q:你知道哪些 Drawable?它們的適用場景是什么?
Q:mipmap系列中的xxxhdpi、xxhdpi、xhdpi、hdpi、mdpi、ldpi之間什么關系?
Q:dp、dpi、px有什么區(qū)別?
問:res 目錄和 assets 目錄有什么區(qū)別?
問:Android 有哪些類型的動畫?
Q:使用幀動畫需要注意什么?
Q:View動畫和屬性動畫有什么區(qū)別?
Q:為什么View動畫實際上不能改變View的位置?為什么屬性動畫可以?
問:屬性動畫插值器和估算器的作用是什么?
問:Activity、View、Window之間什么關系?
Q:窗戶有哪幾種類型?
Q:Activity創(chuàng)建過程和Dialog創(chuàng)建過程有哪些相同和不同之處?
Q:消息機制Handler是什么?它的作用是什么?它的元素有哪些?流程是怎樣的?
Q:為什么系統(tǒng)不建議在子線程中訪問UI?
問:一個線程可以有多少個 Looper 和 Handler?
Q:如何將一個線程變成一個 Looper?Looper 有什么特點?
Q:我可以在子線程中直接創(chuàng)建新的Handler嗎?如何做?
問:如何創(chuàng)建消息?哪種方式更好?為什么?
問:ThreadLocal在這里起什么作用?
Q:主線程中Looper輪詢死循環(huán)為什么不會阻塞主線程?
Q:使用Hanlder的postDealy()之后消息隊列會發(fā)生什么變化?
問:您知道 Android 中還有哪些類可以促進線程切換?
問:AsyncTask與Handler相比有哪些優(yōu)缺點?
Q:使用AsyncTask需要注意什么?
問:AsyncTask 中使用的線程池大小是多少?
Q:HandlerThread有什么特點?
Q: 如何利用Handler快速實現(xiàn)子線程
Q:IntentService有什么特點?
問:為什么不使用bindService來創(chuàng)建IntentService?
Q:線程池的好處、原理、種類有哪些?
Q:ThreadPoolExecutor的工作策略是怎樣的?
Q:什么是ANR?什么情況下會出現(xiàn)ANR?如何避免?如何在不看代碼的情況下快速定位ANR問題?
Q:加載圖片時要注意什么?
問:LRU算法的原理是什么?
Q:Android中緩存更新策略是怎樣的?
Q:項目中如何進行性能優(yōu)化?
Q:你知道哪些性能優(yōu)化工具?
Q:如何優(yōu)化版面?列表呢?
問:什么是內存泄漏?為什么會發(fā)生內存泄漏?內存泄漏的常見示例有哪些?如何解決?
問:內存泄漏和內存溢出有什么區(qū)別?
問:哪些情況會導致內存溢出?
Q:您了解并使用過Google推出的新技術嗎?
Q:您知道新發(fā)布的Androidx.0有哪些特性嗎?
Q:Kotlin 對 Java 做了哪些優(yōu)化?
b.Java
問:面向對象編程的四大特點及其含義是什么?
Q:String、StringBuffer、StringBuilder有什么區(qū)別?
Q:String a="" 和 String a=new String("") 有什么關系和區(qū)別?
問:Object 的 equal() 和 == 有什么區(qū)別?
問:打包和拆包是什么意思?
問:int 和 Integer 有什么區(qū)別?
Q:你遇到過哪些運行時異常?你知道哪些異常處理機制?
問:什么是反射?它的功能和應用是什么?
問:什么是內部類?它的作用是什么?靜態(tài)內部類和非靜態(tài)內部類有什么區(qū)別?
問:final、finally 和 finalize() 分別是什么意思?
問:覆蓋和重載有什么區(qū)別?
問:抽象類和接口有哪些相同點和不同點?
問:匿名內部類中的局部變量為什么需要修飾為final?
問:Object 的公共方法有哪些?
問:Java 集合框架中有哪些類?它們有什么特點?
問:集合、數(shù)組、泛型的關系以及比較
問:ArrayList 和 LinkList 有什么區(qū)別?
問:ArrayList 和 Vector 有什么區(qū)別?
問:HashSet 和 TreeSet 有什么區(qū)別?
問:HashMap 和 Hashtable 有什么區(qū)別?
問:HashMap在放入和獲取元素時體現(xiàn)的是什么數(shù)據(jù)結構?
問:如何解決哈希沖突?
Q:如何保證HashMap線程安全?原理是什么?
Q:HashMap是有序的嗎?如何實現(xiàn)有序的?
Q:HashMap 如何擴展?如何避免擴展?
問:hashcode()的作用是什么,與equal()有何不同?
Q:啟動線程有哪些方式?銷毀線程有哪些方式?
問:同步與異步、阻塞與非阻塞的概念
問:Thread的join()起什么作用?
問:線程有哪幾種狀態(tài)?
Q:什么是線程安全?有哪些手段可以保證線程安全?
問:ReentrantLock 和synchronized有什么區(qū)別?
問:synchronized 和 volatile 有什么區(qū)別?
問:同步代碼塊和同步方法本質上鎖定了誰?為什么?
問:sleep()和wait()有什么區(qū)別?
問:你了解Java 1.x的特點嗎?
問:談談你對過程式編程、面向對象編程、面向方面編程的理解
c.計算機網(wǎng)絡
五層協(xié)議的架構是怎樣的?各層有哪些協(xié)議?
問:有了 MAC 地址,為什么還需要 IP 地址?
問:TCP 和 UDP 有什么區(qū)別?
問:什么是擁塞控制和流量控制?它們之間有什么區(qū)別?
問:TCP為什么需要三次握手?為什么需要四次握手?
問:我應該使用 TCP 還是 UDP 播放視頻?為什么?
問:您知道哪些響應狀態(tài)代碼?
Q:get和post有什么區(qū)別?