最新中級java面試總結
- 2019 年 10 月 7 日
- 筆記
點擊上方「java從心」,設為星標
每天進步一丟丟,連接夢與想
鵝肥來了~要是問我為什麼,因為我知道你想我了。 重頭再來,一周至少更新兩到三篇文章。 不喜歡取關就是,否則,那我們的故事就開始了~
進入正題!最近面試了不少家公司,從一家非外包跳到了外包(委屈臉Ծ‸Ծ),下面總結一下最近的一些心得體會 1.如果在做技術只是為了過日子,而沒多大興趣,那你必須需要考慮一下行業發展方向了。選定一個行業,深入某個行業發展,熟悉業務+技術,你會得到更多。懂業務的技術人,往往比技術大牛,牛逼(所以我選了這家銀行外包)
2.面試中問了挺過關於運維的東西的,比如redis的集群策略,mq的集群策略等等,如果你公司中有運維,不需要你做搭建部署的工作,那你也得關注和學習公司所有運用的相關技術,多向運維學習 3.很多面試官都會順著你的簡歷去問,不會的別寫,寫了就得會,別給自己挖坑!
4.簡歷和自我介紹凸顯自己的亮點!想想自己有什麼亮點或者使自己擁有亮點,比如熟悉微服務相關技術棧,熟悉資料庫優化等等,資料庫優化比較吃香,不管哪家公司都需要資料庫相關技術,推薦學習這個點
5.想工資高點,可以試著學好英語,進外企,這個應該比進大廠容易多了

面試題

工作經驗2年,這次面試的是中級java,以下是一些比較常問的面試題,答案就自己Google吧
java基礎
1.執行緒的各種狀態 2.執行緒池的創建方式 3.set底層實現原理 4.HashMap,HashTable和CurrentHashMap的區別 5.常見設計模式 6.實現執行緒同步的幾種方式 7.synchronized的底層實現原理
Spring相關
1.spring的事務管理類型 2.spring Bean的作用域 3.spingmvc原理 4.SpringMVC的controller是執行緒安全的嗎 5.springboot配置文件載入原理
Mysql相關
1.mysql中索引的結構 2.聚簇索引,單列索引和多列索引的區別 3.mysql為什麼需用b+Tree做索引結構 4.分散式系統中,主鍵如何選擇 ANS:在只使用單資料庫時,使用自增主鍵ID無疑是最適合的。但在集群、主從架構上時就會有一些問題,比如 : 主鍵的全局唯一
- UUID:uuid 是雜亂無章的,每次插入的主鍵位置是不確定的,可能在開頭,也可能在中間,在進行主鍵物理排序的時候,勢必會造成大量的 IO操作影響效率,因此不適合使用 UUID 做物理主鍵。比較適合的做法是把 uuid 作為邏輯主鍵,物理主鍵依然使用 自增ID;或者使用UNHEX()函數轉換UUID至為16位位元組的數字存儲
- 通過應用程式生成一個 GUID,然後和數據一起插入切分後的集群
- Redis 生成 ID:這主要依賴於 Redis 是單執行緒的,所以也可以用生成全局唯一的 ID。 5.mysql優化
JVM相關
1.類的載入過程 2.常見垃圾回收演算法 3.Full GC的觸發條件 4.JVM調優
微服務與分散式相關
1.Ribbon的負載均衡策略 2.你知道哪幾種負載均衡演算法 3.eureka保護機制 4.eureka和zookepper區別 5.你如何理解springCloud 6.分散式鎖解決方案 7.分散式事務解決方案
中間件相關
1.RabbitMq的幾種工作模式 2.RabbitMq集群模式 3.redis集群策略 4.redis可以存1千萬數據嗎? ANS:當數據量達到1千萬左右時,由於記憶體中不能存儲如此大量數目的數據,頻繁同磁碟進行數據交換,導致數據查詢、存儲性能的急劇下降,將導致服務不可用。 5.你公司所用的消息中間是什麼,為什麼選它?(同問,各種消息中間件的比較) 6.RabbitMq如何保證數據不丟失 7.快取穿透,快取擊穿和快取雪崩
看完後,可能你會說有些東西你根本接觸不到或者沒用,甭說了,面試官就是要問。不管你是否想往技術這塊深入發展,只要你想跳槽漲工資,就好好學吧,多問多做。若後期想轉型,則可以邊學邊往自己想要的方向發展。Just Do It!
小彩蛋:這次面試遇到一家奇葩的公司,面試了2分鐘,就做了個簡單自我介紹和簡單的無關技術問答,然後就過了,13k(懵逼臉o((⊙﹏⊙))o),然後我直接拒了(提醒:這種公司千萬不要去,雖然給的還行,但肯定是個大坑,這麼簡陋的面試就知道!)