06.20我從北京xxxx有限公司離職,結束了一年的見習生涯。07.05-08.04在幫我姐夫作翻譯;畢竟這段時間比較空閒,在空閒的時候我都是在準備面試,不論是Java基礎、JVM、數據庫、數據結構、分佈式、集羣仍是項目都準備的差很少,期間我看過《數據結構與算法分析》和《Java編程思想》等書籍。08.03我回到深圳,08.04開始的阿里一面到08.22的四面,今天得知四面掛了感受很惋惜,畢竟差Offer僅一步之遙,但又在乎料之中;你選擇公司,公司一樣也選擇你,若是你沒有足夠優秀,那麼對不起-你只是一個過客,而我就是那麼一個過客而已。我也留了退路,畢竟阿里沒有十足的把握;在這段時間我也去面過三家公司都是自身產品研發,很巧很幸運也都拿到了Offer;公司沒有好壞之分,你選擇公司的緣由無非看在該公司是否可以給予咱們指望的salary、行業的前景和對自身的成長空間,這些之中阿里無非是首選。從阿里的這趟面試經歷中,給我最大的領悟就是:只有本身足夠優秀,纔有選擇的餘地。java
你最近在幹嘛?(********)、你能說下服裝外貿的流程嗎?、集合底層原理、介紹項目、介紹下buddo、若是我發了兩筆相同的轉帳你是怎麼處理的?(項目上,採用redis:單線程)、redis掛了怎麼辦?(採起集羣模式,可以持久化:命令行log和持久化到本地或者是遠程服務器存儲)、你能講下對帳嗎?、你有什麼要問個人嗎?python
介紹一下本身、介紹一下項目、問了個交易場景是怎麼處理的、你作過jvm的優化嗎(答:沒有,由於在項目上有專門的架構團隊,他們負責這些工做,但我有簡單瞭解過)?那你在項目上優化過什麼沒有?(答:將數據庫數據放入緩存、由於這些數據是不常改的)你除了學習java還有學習其餘語言嗎?(答:有了解過python偶爾會去看一些視頻,畢竟如今我還處在學習階段,我以爲我如今應該先把java基礎先打牢,而後再去把其餘語言做爲第二或者第三語言)、你看過redis、dubbo的源碼嗎?(答:沒有,但我簡單瞭解過;看源碼就是看別人寫的好的代碼思想,由於看源碼須要有足夠的能力纔有看得懂,我以爲java的基礎得先掌握牢固,好比:設計模式啊、jdk源碼啊等)你除了在項目上學的東西還有哪些途徑獲取知識(公衆號、書)、你關注的公衆號有哪些?(Hollis、Java後端技術、Java思惟導圖、Java技術棧、Java面試筆試)、在最近的一篇文章你學到了什麼(JVM,開始巴拉巴拉)、你參加過世界知名的大賽嗎?(如:ACM,答:我參加過藍橋杯、創新大賽,ACM沒能力去啊)、你的成績怎樣?(開始巴拉巴拉)mysql
A:你面的是ICBU(國際技術事業部)是嗎?web
B:是的,以前填的是這個部門面試
A:來咱們部門(業務平臺事業部)吧?如今阿里的重心在咱們部門,ICBU的話不是公司的業務核心(面試官在憨笑)redis
B:能夠啊,能夠轉部門嗎?能夠的話我就轉過來(在憨笑)算法
A:能夠轉,不過通常是要在正式兩年以後才能夠sql
A:你以前面試過嗎?你是第輪面試了啊?數據庫
B:這是第三面了編程
A:你如今人在哪裏呢?
B:我如今在深圳這邊
A:來杭州吧,深圳那邊的話是一個研發基地,杭州是總部基本核心業務部門都在這裏
B:能夠的,遵從安排,畢竟阿里牛人多,哪裏須要去哪裏(在笑着)
A:好吧,如今開始咱們的面試吧
A:自我介紹下......
B:巴拉巴拉
A:你作過哪些項目
B:開始敘述......(先講作過的項目,而後挑一個熟悉的項目精講:包括項目背景、項目系統架構、用到的技術、模塊的各個功能)
A:爲何要用分佈式?我集成模式也能夠啊?
B:分佈式系統的話有這些優勢:qps、運行可靠性、可擴展性、可維護性、解耦等(還好多,多巴拉巴拉)
A:那分佈式的數據一致性問題怎麼解決?
B:在咱們項目的話,內部通信主要採用的是MQ,MQ在必定程度上市能夠保證書屋的一致性的
A:MQ如何保證一致性的?
B:好比A模塊發了一個消息到Topic1,B模塊監聽Topic1;若是B獲取了消息就會往下執行,若是沒有獲取則消息還在
A:若是此時我B系統奔潰了怎麼辦?這個怎麼處理?(這個問題主要問的是分佈式、集羣的特色了)
B:由於分佈式系統在集羣模式下,每個服務實例都有運行數據的拷貝;好比B奔潰了致使線程中斷,由於分佈式有容災的特性在每一個B系統的集羣實例都有相關數據的備份,即便B掛了也沒事,還有B一、B二、B3......
A:xxxxx模塊是幹什麼的?
B:巴拉巴拉
A:爲何網關要用restful接口方式?
B:爲了兼容以前的系統,客戶化的時候去掉了網關模塊;如今統一採用的是dubbo接口,由於dubbo也有錯誤重試、軟負載、服務自動發現等優勢(建議在回答的時候儘可能要回答爲何,本身主動說而不是別人問)
A:緩存大家通常用來幹嗎?
B:在咱們項目的話,主要用於兩個方面;一是:基礎配置數據,二是:異步緩存
A:基礎配置數據的話是大家服務起來的時候一個一個啓動嗎?
B:是的,咱們用的@PostConstruct註解,當服務一啓動的時候就將數據庫的配置加載到本地緩存;若是在應用程序中,某個請求拿不到緩存的話就去數據庫查詢(適當改編,由於以前是沒有去數據庫拿數據這一步,畢竟有可能緩存你拿不到消息)
A:項目問完了,如今問下java基礎
A:StringBuffer、StringBuilder的區別
B:巴拉巴拉
A:ArrayList、LinkedList的區別以及使用場景
B:巴拉巴拉
A:泛型用過嗎?
B:用過,好比List、Set、Map這些都有用到過泛型
A:泛型的優勢是什麼?
B:避免了CastClassException的異常;在沒有泛型以前是用Object,但這有一個問題是會有類轉換異常;泛型有類型擦除,在編譯期間這行類型是不會保留的
A:再來說講集合吧,HashMap是線程安全的嗎?
B:非線程安全,線程安全的有HashTable、ConCurrentHashMap
A:設計模式用過嗎?
B:具體沒用過,但瞭解過;好比IO的適配器模式和裝飾器模式
A:使用單例模式的時候須要注意什麼?
B:側重雙重校驗鎖(再巴拉巴拉其餘的)
A:web開發瞭解嗎?
B:瞭解過一些
A:問個簡單的,post與get的區別?
B:巴拉巴拉
A:cookie與session的區別?
B:巴拉巴拉
A:好的差不了瞭解了,你還有什麼想問的嗎?
B:我問下的,阿里校招難嗎?容不容易進啊?
A:挺難的,如今咱們部門一個都還沒過,一個Offer都還沒發。你這邊我以爲沒什麼問題
B:阿里對待校招生有怎樣的培養計劃?
A:進去以後都是有師兄帶着的,也有所有的新人作一個項目............
B:轉正難不難啊?
A:也不算難,轉正的時候會參考以往的工做外加考覈
B:好的,我差很少了解了
A:好的,謝謝,再見
B:謝謝啊,拜拜
A:清算與結算有什麼區別?
A:你以爲Java跟其餘高級語言有什麼區別?
A:Java的最新版本是什麼?有什麼特性?
A:StringBuffer、StringBuilder的區別
A:線程安全的概念
A:代理模式
A:異常分爲哪些,運行時異常與非運行時異常的區別,自定義異常屬於什麼異常
A:final與finally的區別
A:B_IO、N_IO、A_IO的區別
A:JVM
A:JMM
A:若是一個應用隔三天就會發生OutOfMemory,這個問題你會怎麼排查?(jmap工具)
A:MySQL怎麼備份(mysqldump -h127.0.0.1 -uroot -ppass myweb > d:/backupfile.sql)
A:複合索引的問題
A:MySQL的存儲引擎有哪些,他們有哪些不同
A:MySQL事務的四個特性
A:xxxxx項目分爲哪幾個模塊?
A:適配器用來幹嗎的?
A:大家項目的冪等校驗
A:我大概瞭解了;結果的話這個星期會出,你注意下手機或者郵件。先這樣了,再見
A:謝謝,拜拜
......(還有其餘的,記不起來了)