2019 阿里最新面試題,掌握這些輕鬆拿offer

阿里巴巴不用我多說了吧,旗下有阿里雲、螞蟻金服、菜鳥網絡、支付寶等都屬阿里旗下,以上這些企業面試題都不太一樣,但是面試流程基本上是差不多的,今天我主要說一下Java後端方向崗位。

2019 阿里最新面試題,掌握這些輕鬆拿offer

面試開始會讓自我介紹,主要業務架構和技術架構兩部分。業務架構一般不會深究,但要面試官聽明白,並且一般面試官會順著問是如何根據這些業務去設計技術架構的。


阿里面試題

1、多個線程同時讀寫,讀線程的數量遠遠大於寫線程,你認為應該如何解決併發的問題?你會選擇加什麼樣的鎖?

2、JAVA的AQS是否了了解,它是幹嘛的?

3、除了synchronized關鍵字之外,你是怎麼來保障線程安全的?

4、什麼時候需要加volatile關鍵字?它能保證線程安全嗎?

5、線程池內的線程如果全部忙,提交一個新的任務,會發生什什麼?隊列6、全部塞滿了之後,還是忙,再提交會發生什麼?

7、Tomcat本身的參數你⼀一般會怎麼調整?

8、synchronized關鍵字鎖住的是什麼東西?在字節碼中是怎麼表示的?在內存中的對象上表現為什麼?

9、wait/notify/notifyAll方法需不需要被包含在synchronized塊中?這是為什麼?

10、ExecutorService你一般是怎麼用的?是每個service放一個還是一個項目裡面放一個?有什麼好處?

11、你有沒有⽤用過Spring的AOP? 是用來幹嘛的? 大概會怎麼使用?

12、如果⼀一個接口有2個不同的實現, 那麼怎麼來Autowire一個指定的實現?


spring

13、Spring的聲明式事務 @Transaction註解一般寫在什麼位置? 拋出了14、異常會自動回滾嗎?有沒有辦法控制不觸發回滾?

15、如果想在某個Bean生成並裝配完畢後執行自己的邏輯,可以什麼方式實現?

16、SpringBoot沒有放到web容器裡為什麼能跑HTTP服務?

17、SpringBoot中如果你想使用自定義的配置文件而不僅僅是application.properties,應該怎麼弄?

18、SpringMVC中RequestMapping可以指定GET, POST方法麼?怎麼指定?

19、SpringMVC如果希望把輸出的Object(例如XXResult或者XXResponse)這種包裝為JSON輸出, 應該怎麼處理?

20、怎樣攔截SpringMVC的異常,然後做自定義的處理,比如打日誌或者包裝成JSON


MySQL

21、如果有很多數據插入MYSQL 你會選擇什麼方式?

22、如果查詢很慢,你會想到的第一個方式是什麼?索引是幹嘛的?

23、如果建了一個單列索引,查詢的時候查出2列,會用到這個單列索引嗎?

24、如果建了一個包含多個列的索引,查詢的時候只用了第一列,能不能用上這個索引?查三列呢?

25、接上題,如果where條件後面帶有一個 i + 5 < 100 會使用到這個索引嗎?

26、怎麼看是否用到了了某個索引?

27、like %aaa%會使用索引嗎? like aaa%呢?

28、drop、truncate、delete的區別?

29、平時你們是怎麼監控數據庫的? 慢SQL是怎麼排查的?

30、你們數據庫是否支持emoji表情,如果不支持,如何操作?

31、你們的數據庫單表數據量是多少?一般多大的時候開始出現查詢性能急劇下降?

32、查詢死掉了,想要找出執行的查詢進程用什麼命令?找出來之後一般你會幹嘛?

33、讀寫分離是怎麼做的?你認為中間件會怎麼來操作?這樣操作跟事務有什麼關係?

34、分庫分表有沒有做過?線上的遷移過程是怎麼樣的?如何確定數據是正確的?

JVM性能優化

35、你知道哪些或者你們線上使用什麼GC策略? 它有什麼優勢,適用於什麼場景?

36、Java類加載器包括幾種?它們之間的父子關係是怎麼樣的?雙親委派機制是什麼意思?有什麼好處?

37、如何自定義一個類加載器?你使用過哪些或者你在什麼場景下需要一個自定義的類加載器嗎?

38、堆內存設置的參數是什麼?

39、Perm Space中保存什麼數據? 會引起OutOfMemory嗎?

40、做gc時,一個對象在內存各個Space中被移動的順序是什麼?

41、你有沒有遇到過OutOfMemory問題?你是怎麼來處理這個問題的?42、處理過程中有哪些收穫?

43、1.8之後Perm Space有哪些變動? MetaSpace大小默認是無限的麼? 還是你們會通過什麼方式來指定大小?

44、Jstack是幹什麼的? Jstat呢? 如果線上程序週期性地出現卡頓,你懷疑可能是gc導致的,你會怎麼來排查這個問題?線程日誌一般你會看其中的什麼部分?

45、StackOverFlow異常有沒有遇到過?一般你猜測會在什麼情況下被觸發?如何指定一個線程的堆棧大小?一般你們寫多少?

如果你也對Java工程化、Java高併發、微服務、源碼分析、性能優化等技術感興趣的話,可以關注我的微信公眾號(Java後端進階)Javasuiyue,每天不定時分享Java優質內容,還會不定時送書哦!


分享到:


相關文章: