天天看點

2021金三銀四 Java面試

面試:人人網(Java武漢)

時間:2021-03-19

筆試兩道算法題

算法1: 長度為1000萬的字元串數組,要求去除重複字元串,并以首字母大寫其他字母小寫輸出。

例如:[“Wuhan”,“nanjing”,“Shang Hai”,“Nan jing”]

輸出:[“Wuhan”,“Nanjing”,“Shanghai”]

算法2: 比較版本号大小(LetCode 165原題)

面試:

1.ArrayList 和LinkList差別?

2.redis底層資料結構?(不是讓你介紹5種資料類型,而是回答5種資料類型底層資料結構實作)

3.redis當機後資料恢複?(知識點:AOF和哨兵)

面試:盛天網絡(Java)

1.redis鎖怎麼實作?

2.redis持久化?

3.基于redis設計獎牌榜需要考慮哪些?

4.RocketMq如何确認消費成功?

5.rocketmq如何避免重複消費?

6.Spring架構相關問題:方法B上使用@Cacheable注解,方法A對B調用,會讀取緩存嗎?

7.在方法B上加@Transactional,方法A對B進行調用,事務是否有效?

8.小程式事件通知是如何實作?

面試:騰訊雲(Java)

1.mysql索引類型

2.mysql性能優化如何設計?

3.什麼情況下出現記憶體溢出?

4.介紹下線程建立方式?

5.HashMap和HashTable差別?

6.說說對mysql索引的了解?主鍵索引和唯一索引、普通索引的差別?

7.mysql鎖的了解?行級鎖死鎖的了解?

8.mysql性能優化的了解,需要考慮哪些?

9.explain執行計劃介紹?

10.講下mysql主從複制過程?

11.redis使用,有哪些資料結構?

12.講下分布式鎖實作?

13.redis持久化政策?

14.redis叢集部署方式?

15.Time_waite發生在TCP哪個過程?

16.IPv4是多少位?

17.http和https差別?

…面了不超過20min,gg…剩下内容想不起來了

面試:青藤雲(Java)

1.synchronized和reentrantlock的差別?synchronize如何使用?

synchronize在靜态方法和非靜态方法上使用有什麼差別?

2.RocketMq和RabbitMq差別?為什麼RocketMQ能支援更高的并發?

3.RocketMq如何保證消費者成功消息?

4.RabbitMq死信有了解嗎?介紹下?

5.Mysql所的類型?分别介紹下行級索、表級索、頁面索的作用?

6.介紹下索引類型?為什麼B+數效率更高?(這裡給自己挖了個坑,介紹B+樹特性時候很索引引擎特性搞混了,說B+樹支援事務,gg…)

7.Git中reBase是做什麼的?cher-Pick做什麼用的?

8.介紹下JPA使用中N+1問題?

總結:基礎知識了解不夠深入,最近面試了5家公司,高頻面試題:MQ-持久化、高可用、如何判斷消費者是否消費成功、死信…

Redis-持久化、一緻性、高可用、鎖…

Mysql-索引、鎖、索引的效率、事務

Spring-事務、緩存、AOP

JPA-N+1問題

計算機網絡-七層結構、三次握手/四次揮手

##騰訊雲 40min

1.項目架構介紹?

2.HashMap為什麼線程不安全?

3.ThreadLocal底層實作?

4.介紹下緩存雪崩,緩存擊穿,緩存穿透?如何避免?

5.redis分布式鎖如何實作?除了setnx還有其他的方法沒?JAVA代碼如何實作一把分布式鎖?

6.Mysql聯合索引什麼情況下會失效?

7.Mysql分庫分表如何實作?

8.介紹一下Tcp三次握手?

9.介紹一下Spring, Spring Mvc ,Spring Boot, Spring Cloud?

10.線程池如何實作線程數量?

11.ELK的組成,分别介紹下?

算法題:整數數組,找出并傳回能被3整除的元素最大和?

##科大訊飛 30min

1.介紹一下項目架構?

2.Hashmap底層實作?為什麼用紅黑樹?

3.ThreadLocal底層實作?

4.緩存擊穿和緩存穿透差別?

5.count(*)和count(1)的差別?

6.自增主鍵和uuid主鍵差別?

7.項目中遇到的難點?

8.常用的資料類型有哪幾種?

9.int占幾個位元組?

10.java介紹下常用資料結構接口有哪些,分别有哪些實作?

11.SpringMVC的了解?它和SpringBoot有什麼差別?

聯影醫療

1.StringBuilder和SringBuffer差別?是否現程安全?

2.java中實作鎖的方式?Synchronized,ReentrantLock 對比?synchronized是公平鎖嗎?

3.ArrayList是否線程安全?列舉一個線程安全的List類(vector)

4.三個線程同時向ArrayList寫資料,會出現什麼情況,如果解決?

5.Springboot底層進行容器注入實作?

6.nacos配置中心加載原理?如何實作熱啟動?

曠視科技

1.redis分布式鎖怎麼實作的?

2.redis進行rdb持久化時時同步還是異步的?

3.redis如何保證高可用?

4.redis記憶體淘汰政策?哪三種?(實際上時沒有使用到定時政策)

5.synchronization和ReentrantLock的差別?底層時怎麼實作加鎖的?

6.阻塞隊列有哪些?分别試用哪些場景?

7.ArrayList擴容過程?

8.setnx和setex差別?

9.如何實作一個分布式鎖?

10.索引有哪些資料結構,B樹、B+樹、Hash索引分别适用什麼場景?

11.介紹下SpringCloudAlibabab?它與SpringClould有什麼差別?

12.介紹下服務發現的原理?

13.介紹下nacos如何實作服務注冊?

14.分布式事務實作方案?介紹下過程

15.SpringBean是單例還是多例?

16.介紹下設計模式?應用場景?簡單工廠和抽象工廠有什麼差別?