3年Java經驗硬核通過京東面試(已獲Offer),誰說專科不能進大廠? 前言 京東面試問到的問題 同時分享大佬的後端學習筆記,非常適合1到5年的Java朋友們 總結

前言

17年畢業到現在有三年多了,最近去面試了阿里集團(菜鳥網絡,螞蟻金服),網易,滴滴,京東,最終收到點我達,網易offer,螞蟻金服二面掛掉, 菜鳥網絡一個月了還在流程中...最終有幸去了京東。(跟我東哥做兄弟)

但是要特別感謝點我達的領導及HR,真的非常非常好,很感謝他們一直的關照和指導。回饋小夥伴一波面經及我的複習寶典 (是真的很全,請往下看)

京東面試問到的問題

同時這些問題,我已經整理在了這份大廠Java面試進階解析寶典裏了,

有需要的小夥伴+VX: czh9115 即可獲取
  1. JVM底層的有哪幾種垃圾回收算法,有什麼區別。簡述一下你瞭解的垃圾回收器有哪些,有什麼區別。
  2. 簡述一下CAS的實現原理
  3. 簡單描述一下java中的線程池,線程池是如何保證工作線程不會銷燬?如果設置線程池的CorePoolSIze爲0,MaxMumSize>1,描述一下內部是如何工作的。你在工作中是如何設置線程池的參數的爲什麼。
  4. StringBuffer和StringBuilder的區別
  5. 簡單描述一下ReentrantLock的實現原理?
  6. New String(“abc”) 在jvm內存區域會創建幾個對象
  7. LinkedList和ArrayList有什麼區別,你在工作中一般怎麼用,爲什麼。
  8. 說一下你瞭解的jdk中的併發容器有哪些,你工作中用到哪些?描述一下ArrayBlockingQueue和LinkedBlokingQueue的區別。
  9. 簡述一下ConcrrentHashMap插入數據的流程。
  10. 在main方法中啓動10個線程,可以有哪些方式實現等待這10個線程完成工作再執行其他的任務。
  11. 有大量數據存儲在某數組中,在多線程情況下,如何保證讀取的正確性(所有線程併發讀取這個數組中的數據,不少讀一條也不多讀一條)
  12. 說一下你在工作過程中對jvm的調優經驗。
  13. Mysql中存在哪些隔離級別,有什麼問題,分別怎麼解決的。
  14. Mysql中有哪些儲存引擎,簡述一下你對innodb引擎的理解。
  15. 當一個查詢語句的where條件是一個子查詢,在高併發的情況下,mysql是如何保證子查詢的數據的正確性?這道題有點開放,可以配合不同的隔離級別加上MVCC和readView的知識答題,可以衍生到鎖,體現深度。
  16. 描述一下mysql中行鎖和表鎖,什麼情況下會用到行鎖?
  17. 描述一下Innodb底層的存儲結構,說一下B樹和B+樹的區別
  18. Select * from table where a=x and b>y 其中a和b是字段,如何建立索引提高這條語句的性能。
  19. 描述一下你哪些情況會導致索引失效
  20. 說一下你在工作過程中對mysql的性能優化?開放題,可以從索引,sql優化,架構優化等入手
  21. Spring中有用到哪些設計模式分別用在什麼地方?說一下如何解決循環依賴?
  22. 講一下你對aop的理解?
  23. Spring中是如何處理事務的(@Transaction),如何保證不同的dml語句對應的操作在同一個事務下。在@Trasaction註解對應的方法中有多步事務性操作(同方法或者不同方法調用),如何只回滾其中的一個或多個操作。
  24. 某個方法加了@Transacton註解和Sychronized類鎖,那麼執行順序是先走事務還是Syc?這種方式在多線程情況下能否保證同步?
  25. 描述一下SpringBoot中的自動配置功能的實現。
  26. 你在工作過程中用到哪些springCloud的組件?
  27. 請問你用到了哪些Dubbo的組件,描述一下Dubbo的rpc流程。
  28. 請問你對分佈式事務的理解,你在工作過程中用到哪些方案解決了分佈式事務問題?如何用mq解決分佈式事務問題。
  29. 描述一下你是如何利用redis和zk實現分佈式鎖的?如果用redis實現分佈式鎖,當任務實際用時超過鍵設置的超時時間,你如何解決?
  30. 描述一下zk是如何保證數據的一致性的?
  31. 描述一下rocketMq如何實現事務型消息的?
  32. Redis搭配持久層如mysql,有哪些方式保證他們之間的數據一致性。
  33. Redis如何解決緩存雪崩,擊穿,穿透?
  34. 設計一個全局唯一Id的實現方案。
  35. 如果cpu佔用率過高,如何定位到是項目中哪一行代碼出了問題。 如何提升的

如今技術發展的速度非常快,接下來你該從哪些地方開始自己的一個正確系統的學習方向呢? 給那些開發1到5年的Java朋友們:

同時分享大佬的後端學習筆記,非常適合1到5年的Java朋友們

這份筆記把Java後端95%的技術體系都整理記載清楚了,並且通過工作時間年限來劃分了學習的技術! 下面會詳細展示這份Java從入門到架構成長筆記的內容及涵蓋的知識點

有需要的小夥伴+VX: czh9115 即可獲取來領取全套【Java入門到架構成長筆記】啦!

Java從入門到架構成長筆記目錄

新手村—入門到開發半年(喫透12K+起步)

  • Java基礎篇: 基礎語法+集合+異常+反射+IO+TCP+多線程
  • Java web篇: MySQL數據庫+JDBC+Servlet
  • 三大框架篇: Spring+SpringMVC+MyBatis+商城實戰項目
  • SpringBoot+SpringCloud分佈式開發篇: 微服務入門+實戰
  • 項目經驗篇: 秒殺系統設計+SpringBoot商城實戰

Java基礎篇

三大框架篇

項目經驗篇(秒殺+SpringBoot實戰)

打怪升級第一步—開發1到3年

  • Java併發編程底層篇: 併發基礎+JMM+線程池+阻塞隊列+併發集合+併發工具類+鎖+atomic
  • JVM與性能調優篇: 內存區域+垃圾回收器和內存分配策略+類加載機制+調優
  • 網絡編程篇: TCP/HTTP+Netty+多路複用
  • SQL調優篇: SQL優化原則+鎖+索引+調優+事務+執行計劃
  • Tomcat底層篇: 架構+基礎+調優+集羣+安全
  • 設計模式篇: 六大原則+23種設計模式
  • Spring源碼篇: IOC+AOP+聲明事務源碼解讀
  • MyBatis源碼篇: MyBaits源碼架構分析+MyBaits核心模塊分析+二級緩存

併發編程篇

JVM及調優篇

網絡編程篇

MySQL調優篇

設計模式篇

Spring源碼篇

MyBatis源碼篇

打怪升級第二步:4-5年資深高開

  • 分佈式思維基礎: 大型互聯網架構演進過程+架構師應具備的分佈式知識+主流分佈式架構設計詳解
  • 分佈式監控: Zookeeper+Nginx
  • 分佈式消息隊列: RabbitMQ+RocketMQ+Kafka
  • 分佈式存儲: Redis+MongDB+Mycat

分佈式監控

消息隊列

分佈式存儲

打怪升級第三步:5到7年架構進階

  • 微服務架構進階: Docker+SpringCloud+Spring Cloud Alibaba+K8S
  • 億級流量性能調優實戰: 調優基礎+基礎代碼性能優化+設計模式與性能+併發編程性能優化+JVM深度調優+數據庫性能調優
  • 一線大廠分佈式場景實戰: 分佈式事務解決方案+一線大廠單點登陸方案+分佈式任務調度方案+高併發場景下分佈鎖方案+緩存解決方案

性能調優實戰筆記

大廠分佈式場景實戰筆記

總結

同樣是做Java,有的人工作5年工資沒變化,有的人工作2年就已經年薪30W。這個現象或許前幾年還不明顯, 但隨着近幾年後端技術瘋了一般的快速發展,曾經那個只要會CRUD就能走遍天下的時代早已不在了,人才水平的分化也越來越明顯。

競爭永遠都是非常殘酷的,畢竟成爲一個架構師不是那麼容易的,一個架構師的成長來自於機會,努力及天分 !在這個後浪奔騰的時代,不管是你是剛工作還是有幾年開發了,我相信以上這份Java從入門到架構成長筆記你都需要閱讀閱讀,希望能夠對你的職業發展有所幫助。

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