1. 程式人生 > >2018最新螞蟻金服面試題:Docker+秒殺設計+RocketMQ+億級資料設計

2018最新螞蟻金服面試題:Docker+秒殺設計+RocketMQ+億級資料設計

一面:

1 自我介紹

2 講一下ArrayList和linkedlist的區別,ArrayList的擴容方式,擴容時機。

3 hashmap的實現,以及hashmap擴容底層實現。

4 NIO瞭解麼,講一下和BIO的區別,AIO呢。阻塞,非阻塞,非同步。具體。

5 你說了解分散式服務,那麼你怎麼理解分散式服務。

6 你說了解Tomcat的基本原理,瞭解的是哪一部分,基本架構,connector和container

7 你在專案中怎麼用到併發的。

8 docker和虛擬機器講一下。

9 高併發情況下,如何使用執行緒池

10 併發juc瞭解麼,有哪些執行緒安全的list。

二面

1 專案

2 說一下Spring原始碼把,它的架構,流程。

3 Spring的bean如果要在例項化過程中修改其某一個成員變數,應該怎麼做呢。不通過構造方法,並且AOP也並不能實現。

4 Tomcat的類載入器瞭解麼,回答不瞭解只瞭解Java的類載入器。

5 自定義類載入器怎麼實現,其中哪個方法走雙親委派模型,哪個不走,不走的話怎麼載入類(實現findclass方法,一般用defineclass載入外部類),如何才能不走雙親委派。(重寫loadclass方法)

6 布隆過濾器瞭解麼,講了ip地址過濾的布隆過濾器實現。

7 聽說你專案用過docker,講一下docker的實現原理,說了虛擬機器一般要對核心進行虛擬化,docker則用cgroup和namespace分別進行硬體和名稱空間的隔離。

8 dubbo的基本架構,幾個元件說一下

9 dubbo的負載均衡怎麼做,講一下具體程式碼實現。

10 參與專案的挑戰在哪裡,有哪些收穫。

三面

主要還是問中介軟體

1 阿里的dubbo,rocketmq的事務訊息的架構設計

2 mycat實現分表分庫方案實現

3 訊息佇列kafka和rabbitmq等

4 分庫分表,分片規則hash和取餘數。

5 資料庫萬級變成億級,怎麼處理

6 雙11秒殺的設計思路

以上就是最新螞蟻金服中介軟體團隊面試題,以下是總結的阿里等java必考題範圍和答案。

阿里技術面試回顧:

1.Java基礎還是需要掌握牢固,重點會問HashMap等集合類,以及多執行緒、執行緒池等。

2.Java AIO BIO NIO等

3.Redis的使用以及最常問的一致hash演算法,以及訊息佇列的非同步場景等。

4.各種平時經常使用的開源框架Spring等,從原理到技術細節。

5.高併發場景的技術方案。

6.以及微服務等架構設計。

這些技術範圍的面試題目還是需要平時多學習和積累,提前準備充分,面試通過率就會高很多,最後總結了部分阿里Java必考題目用於參考~

【阿里巴巴面試題目含答案】

1,mysql的三大引擎是啥?

mysql常用的引擎有InnoDB,MyISAM,Memory,預設是InnoDB

InnoDB:磁碟表,支援事務,支援行級鎖,B+Tree索引

ps:優點: 具有良好的ACID特性。適用於高併發,更新操作比較多的表。需要使用事務的表。對自動災難恢復有要求的表。

缺點:讀寫效率相對MYISAM比較差。佔用的磁碟空間比較大。

mysql的4大特性+4種隔離級別:

MyISAM:磁碟表,不支援事務,支援表級鎖,B+Tree索引

ps: 優點:佔用空間小,處理速度快(相對InnoDB來說)

缺點:不支援事務的完整性和併發性

MEMORY(Heap):記憶體表,不支援事務,表級鎖,Hash索引,不支援Blob,Text大型別

ps: 優點:速度要求快的,臨時資料

缺點:丟失以後,對專案整體沒有或者負面影響不大的時候。

2,redis的hash演算法用的是啥?

redis應該是使用一致性hash演算法---MurmurHash3 演算法,具有低碰撞率優點,google改進的版本cityhash也是redis中用到的雜湊演算法。

現有的主流的大資料系統都是用的 MurmurHash本身或者改進

3,nosql為啥比sql快?

Nosql是非關係型資料庫,因為不需要滿足關係資料庫資料一致性等複雜特性所以速度快;

sql是關係型資料庫,功能強大,但是效率上有瓶頸

4,什麼是索引為啥nosql沒索引?nosql有索引滴

索引分為聚簇索引和非聚簇索引兩種,聚簇索引是按照資料存放的物理位置為順序的,而非聚簇索引就不一樣了;聚簇索引能提高多行檢索的速度,而非聚簇索引對於單行的檢索很快。

聚簇索引:有主鍵時,根據主鍵建立聚簇索引;沒有主鍵時,會用一個唯一且不為空的索引列做為主鍵,成為此表的聚簇索引;如果以上兩個都不滿足那innodb自己建立一個虛擬的聚集索引

非聚簇索引:非聚簇索引都是輔助索引,像複合索引、字首索引、唯一索引

5,B+樹和B樹區別?

B樹的非葉子節點儲存實際記錄的指標,而B+樹的葉子節點儲存實際記錄的指標

B+樹的葉子節點通過指標連起來了, 適合掃描區間和順序查詢。

瞭解最新的學習動態;瞭解最新的阿里、京東招聘資訊;獲取更多的面試資料以及阿里架構師精講資料及視訊資源,歡迎加入Java進階之路:878249276