本站小編認為,當你為面試做了足夠的準備是時候,你的面試已經成功了一半,下面來看看以下的面試題吧。
在處理海量資料問題時,首先要仔細分析問題,明白問題需要解決那些關鍵問題,明白需要達到怎樣的儲存、效能要求,在這之前,應充分理解業務資料的分佈、資料粒度、資料服務的質量要求、資料的動態性、資料的關聯性等真實資料、業務熟悉。通常我認為,處理海量資料問題時,心中要有一些基本概念:
1. 現有的開源的優秀工具那些是處理海量資料的;
2. 海量資料就因為資料大嗎,可以考慮對海量資料進行分割槽操作;
3. 加快海量資料的訪問,資料索引必不可是;
4. 記憶體總是有限的,記憶體的速度是最好的,建立快取機制是十分必要的;
5. 海量資料來源多樣,資料格式也不相同,最好是統一為字串處理,邏輯處理交給上層應用;
6. 海量資料離不開叢集、分散式,分散式的出錯處理、負載均衡就必然要有一套可行的機制;
7. 所有底層的問題或者說儲存的問題解決了,未來方便上層應用或者誇大底層支援的業務,對外應該有一個明朗的邏輯檢視;
8. 系統設計和結構,會因為不同的語言、操作性在實現難以上不同,這也需要考慮;
9. 海量資料的一個應用就是資料探勘服務,多域資料來源統一管理下,資料倉庫和相關計算也應該瞭解一二;
10. 儘管說儲存不是問題,如果能對資料進行壓縮處理,又可以接受的效能,這何樂而不為呢。
在參考前人部落格、文摘加上個人一點理解,彙總以下一些基礎概念已幫助和我一樣面臨就業的學生,應對未來公司的面試考核。當然,有實際工作經驗的大牛門來說,下面的問題早已不是問題,他們都在某個問題上是專家了。歡迎大牛指導!
具有通用性的資料結構和演算法思路彙總有:
1. Bloom filter
2. Hashing
3. bit-map
4. 堆
5. 雙層桶劃分,可以理解為多級索引
6. 資料庫索引
7. 倒排索引(Inverted index)
8. 外排序
樹
10.分散式處理
附:Android面試題
1、Activity的基本知識和Activity之間的跳轉
2、Service的基本知識和怎麼樣用一個service來播放音樂
3、Service和Thread的區別,什麼時候只能用Service不能用Thread
4、程序之間的通訊
5、SQLite的基本知識和操作,contentprovider和SQLite之前的聯絡
6、怎麼樣防止一個應用發生anr
7、AnycTask的`基本知識
8、handler的操作,在一個子執行緒中的handler怎麼被另一個子執行緒操作
9、所有的android控制元件都熟悉嗎
10、多解析度的適配,dpi的定義,同一dpi,怎麼區分不同大小的螢幕
11、對簡歷中專案的描述(這個是重點,描述的好壞直接決定了這次面試的成功與否)
12、對當前工作內容的描述