螞蟻金服一面
螞蟻金服一面是電話面試,面試官首先介紹了下他們部門(金融風險部門)的情況,我表達了堆他們部門業務的理解,然後就進入正題了。
- 自我介紹下自己(感覺這是個常規的電話面試套路)
個人教育情況
工作經歷的幾家公司和所在的部門
現在所在的職位和公司
因爲我校招是以測試的身份進入去哪兒網,並做測試做了一年半的時間,面試官對這個情況也深入的瞭解了下原因和時長 - 介紹下感覺比較有成就感的項目
首先我介紹了下項目背景,很明顯,面試官並不感興趣,然後直接問我 - 介紹下你在這個項目中最有成就感的三點
壓力很大的情況下完成了任務(感覺沒啥實質的好處)
做了相關的輔助工具(感覺不是面試官關注的東西)
配置了完善的策略保證上線的安全
面試官聽了之後並沒有很好的反饋,我細想了下,這三點確實沒有突出的地方,實在不應該這麼總結,應該把性能,框架改造,和解決的難題說一下 - 面試官感覺項目沒啥特色,就開始面基礎了,Object的方法有哪些
hashcode
equals
toString
wait
notify
finalize
getClass
clone(沒說出來) - finalize方法是做什麼的?
這裏我沒有實質的說出來finalize的用途是做什麼的,我大致描述了finalize的特點:在對象被Gc之前,必然會調用finalize方法,使用finalize方法可以有一次拯救自己的機會,可以對該對象重新引用 - 見過finalize這麼做的嗎?
沒有,實際項目中基本不會對finalize重寫,也不建議重寫,(這塊對finalize的使用場景不太清楚) - equals方法和hashcode方法爲什麼需要同時重寫
在我們hashMap和hashSet的數據結構中,會先對對象進行hashCode碼的判斷,然後在根據equals方法的判斷是否是相同對象 - hashcode一樣,equals相等嗎?
不一定 - equals相等,hashcode相同嗎?
相同 - 使用過db吧,說下db中的樂觀鎖和悲觀鎖
我一下蒙了,db中的樂觀鎖和悲觀鎖?這個是要問隔離級別嗎?然後腦子就不轉圈了,反問了下,沒太明白 - 那你說下什麼是樂觀鎖,什麼是悲觀鎖
樂觀鎖:在使用之前認爲該值時不會被改動的,業務執行之後修改值的時候進行比對
悲觀鎖:在使用之前認爲該值會被改動,使用之前先對其進行加鎖 - 說下怎麼在db中使用樂觀鎖和悲觀鎖,假設db中有個庫存的列,需要進行扣減,分別使用樂觀鎖和悲觀鎖實現一下
這塊我大腦蒙了,沒說出來,面試結束之後,一下反應過來了
樂觀鎖實現:在db中增加version字段,讀數據把version讀出來,修改後對比version是否相同,相同情況下對庫存修改,並對version加1
悲觀鎖實現:這塊可以設置新字段標識行鎖,先更新行鎖鎖住該行,然後在讀出數據修改數值,把行鎖解除掉(感覺會引申出如果宕機了鎖沒有清掉產生的一直被鎖的問題) - 算法題,兩個有序數組,合併
歸併,嘴說代碼,這個也是少見 - 請問你有意願加入質檢組嗎?
這塊我絕對是腦子出現了問題,我以爲他說的質檢組是測試,其實他們組叫質檢組,我說我不會在鎖質檢工作,我轉開發就不會再做測試的工作,哈哈哈