螞蟻金服Java一面
1 :自我介紹和項目
2 :Java的內存分區
3: Java對象的回收方式,回收算法。
4 :CMS和G1瞭解麼,CMS解決什麼問題,說一下回收的過程。
5 :CMS回收停頓了幾次,爲什麼要停頓兩次。
6: Java棧什麼時候會發生內存溢出,Java堆呢,說一種場景,我說集合類持有對象。
7 :那集合類如何解決這個問題呢,我說用軟引用和弱引用,那你講一下這兩個引用的區別吧。
8: Java裏的鎖瞭解哪些,說了Lock和synchronized
9: 它們的使用方式和實現原理有什麼區別呢?
10: synchronized鎖升級的過程,說了偏向鎖到輕量級鎖再到重量級鎖,然後問我它們分別是怎麼實現的,解決的是哪些問題,什麼時候會發生鎖升級。
11:Tomcat瞭解麼,說一下類加載器結構吧。
12: 說了Spring,問我Spring中如何讓A和B兩個bean按順序加載?
13: 10億個數去重,我說用hash分片做,他說可能不均勻,然後我說了bitmap,他說那數字量更多怎麼辦,我說那就兩個bitmap把。他說下一題吧。
螞蟻金服Java二面:技術面
1:講一下項目
2:做的主要是Java對吧,講一下多線程把,用到哪些寫一下
3:寫了thread和runnable,然後寫了線程池,又問了線程池由哪些組件組成,有哪些線程池,分別怎麼使用,以及拒絕策略有哪些。
4:什麼時候多線程會發生死鎖,寫一個例子吧,然後我寫了一個兩個線程,兩個鎖,分別持有一個,請求另一個的死鎖實例。
5:集合類熟悉吧,寫一個題目,一個字符串集合,找出pdd並且刪除。
6:然後說一下Redis吧,是單線程還是多線程,Redis的分佈式怎麼做?
7:RPC瞭解麼,我說了主要是協議棧+數據格式+序列化方式,然後需要有服務註冊中心管理生產者和消費者。
9:TCP三次握手的過程,如果沒有第三次握手有什麼問題。
螞蟻金服三面:技術面
1:自我介紹
2: cap瞭解麼,分別指什麼,base呢,強一致性和弱一致性有什麼方法來做,2pc瞭解麼,說一下大概過程。
3 :負載均衡怎麼做的呢,爲什麼這麼做?
4: 瞭解過集羣雪崩麼?
5: MySQL的主從複製怎麼做的,具體原理是什麼,有什麼優缺點。
6: Redis有哪些集羣模式,各自的區別?
7 :項目用到了多線程,如果線程數很多會怎麼樣?
8 :分佈式瞭解哪些東西,消息隊列了解麼,用在什麼場景,說了削峯,限流和異步。說了kafka,問我怎麼保證數據不丟失,以及確保消息不會被重複消費。還問了消息送達確認是怎麼做的。
9 :講一下項目的主要架構,你在裏面做了什麼
10: 有什麼比較複雜的業務邏輯講一下。
11: 最大的難點是什麼,收穫是什麼。
螞蟻金服HR面:
1:工作中遇到的最大挑戰是什麼,你如何克服的?
2:你最大的優點和最大的缺點,各自說一個?
3:未來的職業發展,短期和長期的規劃是什麼?
以上答案和經歷我總結在了一個文檔內,加羣956058372即可獲取完整PDF資料呢