阿里媽媽 廣告部門 Java 一二面面經

阿里杭州廣告部門面經

一面:

1.項目
2.多臺機器都可以操作一個事情,但這個事情只需要被執行一次,怎麼辦?可以用java的悲觀鎖(sync\reentrantlock)或在數據庫裏用一個version字段然後加樂觀鎖(只在version爲期待值時才更新):
爲數據庫加一個version字段,當讀取數據時把version字段也讀出來,提交更新時,如果當前數據庫中version 等於 之前讀出來的version,就把數據寫進去:
update task set value = newValue, version = versionValue + 1 where version = versionValue;
3.聊一聊我項目中vue和react的區別,react的virtual dom和vue的雙向綁定、生命週期鉤子方法
4. jvm中的堆知道什麼(堆是高頻考點),堆分爲哪幾塊(新生代、永生代,然後各自介紹下),young gc和full gc是對哪一塊,頻繁full gc怎麼辦??
5. NIO(非阻塞型IO)
6. 在瀏覽器輸入網址,會發生一系列什麼?
7. cookie 和 session的區別:存放位置、什麼時候過期,sessionId、哪個更安全
8. spring boot和spring有什麼區別,我說上手更快,不用再寫xml配置了,然後問我這些註解和xml配置是怎麼起作用的,應該是在問控制反轉和依賴注入這一套。
9. 用docker嗎?我說我們不用。
10. 說10個linux命令
11. 寫過shell腳本嗎?我說寫過groovy,然後隨便講了一些。
12 算法題:二叉樹的鏡像,我沒想到遞歸的形式,用的隊列。但繼續往下深問就卡殼了:問如果一個節點裏有一些數據結構,這些結構不是子節點,但也要把它們鏡像反轉該怎麼辦?應該用遞歸+廣度遍歷來做
13. mysql中的utf-8和mb4的區別:mb4:most bytes 4。mysql的utf8只能拿出3個字節來保存字符,因爲要爲char類型數據保留足夠的長度,所以只能保存大多數字符,如少量漢字、emoji表情,而mb4就有4個字節可以用來保存漢字,能覆蓋所有的字符。
14. mysql: 如何建索引(要考慮什麼),如何提高mysql語句的效率,如何提高模糊匹配的效率,group by之後再對結果進行篩選怎麼辦(having) ,left join和join的區別

二面:

全問的項目,然後就掛了,尷尬。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章