前言
關于技術人如何成長的問題,一直以來都備受關注,因為程序員職業發展很快,即使是相同起點的人,經過幾年的工作或學習,會迅速拉開極大的差距,所以技術人保持學習,提升自己,才能夠扛得住不斷上趕的后浪,也不至于被“拍死”在沙灘上。
近日,經過一朋友的透露,Alibaba也首發了一份限量的“Java成長筆記”,里面記載的知識點非常齊全,看完之后才知道,差距真的不止一點點!
Java成長筆記主要是將Java程序員按照年限來進行分層,清晰的標注著Java程序員應該按照怎樣的路線來提升自己,需要去學習哪些技術點。
下面會介紹這份Java成長筆記的主要內容涵蓋的知識點,由于文章篇幅,所以只展示了截圖內容,完整版免費獲取方式在文末!
支付寶一面
- 介紹一下自己。
- 項目參與的核心設計有哪些
- ArrayList和LinkedList底層
- HashMap及線程安全的ConcurrentHashMap,以及各自優劣勢
- Java如何實現線程安全
- Synchronized和Lock哪個更好?
- HashMap中的get()方法是如何實現的?
- HashMap可以用在哪些場景?
- JVM,垃圾回收機制,內存劃分等
- SQL優化,常用的索引?
- 還有什么問題需要問的。
02 支付寶二面
- 沒有自我介紹,直接問做過哪些Java開發相關的項目。
- 對哪些技術比較熟悉?
- 多線程狀態圖,狀態如何流轉?
- 死鎖,死鎖原因
- 頁鎖、樂觀鎖、悲觀鎖?
- 樂觀鎖如何保證線程安全?
- 用過線程池嗎,對應的好處,如何用?
- 兩個10G的文件,里面是一些url,內存只有1G,如何將這兩個文件合并,找到相同的url?
- 1000個多并發線程,10臺機器,每臺機器4核的,設計線程池大小。
- 代碼題:兩個有序數組,數組中存在重復數字,合并成一個有序數組,去除重復數字。
- 說一下自己的優點。
支付寶三面
- jvm性能調優都做了什么
- 數據庫性能調優如何做
- 分布式系統原理:CAP,最終一致性,冪等操作等
- 高并發情況下,我們系統是如何支撐大量的請求的
- 集群如何同步會話狀態
- 常用NOSQL,有做過比較?
- 什么情況會出現雪崩,以及如何應對?
- 負載均衡的原理
- 數據庫事務屬性
- 與同事溝通的時候,如果遇到沖突了如何解決?
- 工作中覺得哪方面欠缺?
- 有問題要問么?
- 期望薪水?
- 為什么要離開現在的公司?
美團四面
美團點評高級Java一面(技術,電話面試,約40分鐘)
- 自我介紹。
- 項目介紹。
- 了解過redis源碼及redis集群么?
- 分布式下redis如何保證線程安全?
- Hashmap的原理,源碼?
- Hashmap增刪的情況后端數據結構如何位移?
- hashmap容量為什么是2的冪次?
- object類你知道的方法?
- 你重寫過hashcode和equals么,要注意什么?
- jvm內存分區,為什么要有新生代和老年代?
- 有做個JVM內存優化嗎?
- 數據庫索引 主鍵和唯一索引有什么區別?
- 聚集索引和非聚集索引的區別?
- MySQL存儲引擎innoDB和MyISAM的區別?
- 講一下穩定的排序算法和不穩定的排序算法?
- 講一下快速排序的思想?
美團點評高級Java二面**(技術,現場面試,約60分鐘)**
- 幾種線程池區別?
- aio,nio,bio的了解,NIO的核心概念有哪些?
- 常用的NIO框架有哪些,優劣勢?
- 事務的四大隔離級別?
- jvm場景問題, 標記清除多次后老年代產生內存碎片,引起full gc,接下來可能發生什么問題?
- MySQL innodb的b+樹索引,主鍵索引,聚簇索引有什么區別?
- 數據庫四大特性?
- MySQL里有哪些鎖,行鎖表鎖,樂觀鎖呢?
- MySQL的死鎖怎么產生的,舉了兩個例子。
- dubbo里的zookeeper是做什么的?
- 表鎖 行鎖 樂觀鎖 悲觀鎖的特點和區別?
- 并發工具包有哪些,具體怎么用?
- Docker平時怎么使用的?
- Kafka如何解決數據堆積?
- kafka消息的存儲機制?
- 如何用kafka保證消息的有序性?
- kafka如何保證并發情況下消息只被消費一次?
美團點評高級Java三面題目**(技術,現場面試,約60分鐘)**
- 項目介紹。
- 最有技術難度的項目,介紹下相關核心設計流程。
- 分布式下redis如何保證線程安全?
- redis持久化的方式以及區別?
- zookeeper如何實現分布式鎖、其他分布式鎖怎么實現?
- kafka的架構,如何用kafka保證消息的有序性?
- 數據庫的優化包含哪些?MySQL的優化,談兩個你優化的例子。
- redis用的哪個版本?
- 如何搭建redis集群?
- redis如何主從同步?
- redis分布式鎖注意事項?
- redis持久化的方式以及區別?
- redis持久化方式及區別?
- my sql數據量多大的時候需要分表?
- my sql常用的存儲引擎及區別?
- zookeeper的作用:分布式鎖、注冊服務中心?
- zookeeper如何實現分布式鎖、其他分布式鎖怎么實現?
- 分布式事務的解決方案?
- 單點登錄怎么實現?
- 秒殺系統怎么來實現?
- 工作中,遇見了技術瓶頸無法解決,你的解決思路?
- 技術選型方面,一個新技術和一個穩定的舊技術,你會如何選擇,會考慮哪些因素?
美團點評高級Java四面題目(HR,現場面試,約30分鐘)
- 自我介紹下。
- 自己的優點和缺點。
- 為啥想來美團,對美團了解多少?
- 心中的互聯網公司排序。
- 工作中遇見暫時無法解決的問題,你是怎么應對的?
- 最近在學什么新技術
- 你是通過什么路徑與方法,去學習和接觸一門新技術的?
- 未來的職業規劃是什么?
拼多多Java研發崗4面試經過及面試題
一面
- 線程池由哪些組件組成,有哪些線程池,分別怎么使用,以及拒絕策略有哪些
- 寫一題算法,層次遍歷樹并輸出每層的層級
- 寫一道題,二叉樹的后序遍歷,非遞歸算法。
- 什么時候多線程會發生死鎖,寫一個例子
- 說一說jdk1.8中,對hashMap的優化,對concurrentHashMap的優化
- 如何解決hash沖突的,以及如果沖突了,怎么在hash表中找到目標值
- 有1000個數據存在hashmap中,實際的數量是多少,考慮負載因子和擴容
- 常見的RPC有哪些?對應的區別和性能比較?
- 操作系統的用戶態和核心態切換條件以及為什么要切換
- 線程間的通信方式,異步隊列,消息延遲獲取
二面
- MySQL的主從復制怎么做
- MySQL的索引,使用B+樹索引的好處
- MySQL性能查看以及如何優化
- Redis是怎么做緩存的
- Redis的持久化操作
- 如何利用redis處理熱點數據
- TCP三次握手的過程,如果沒有第三次握手有什么問題。
- 分布式鎖怎么實現
三面
- cap了解么,分別指什么
- 網絡編程nio和netty相關,netty的線程模型,零拷貝實現
- Redis是單線程還是多線程?Redis的分布式集群怎么做?
- 分布式消息隊列有哪些(Kafka等)?有使用過哪些?具體應用在什么場景?
- 負載均衡怎么做的呢,為什么這么做,了解過集群雪崩么。
- 談談高并發場景下削峰,限流的實現?
四面(HR)
- 為什么跳槽?
- 期望的薪資是多少?
- 如何看待加班問題?
- 平時自己是怎么學習技術的,除了Java相關,還會去了解其他什么技術?
- 未來幾年有什么規劃?
最后
整理的這些資料希望對Java開發的朋友們有所參考以及少走彎路,本文的重點是你有沒有收獲與成長,其余的都不重要,希望讀者們能謹記這一點。
再免費分享一波我的Java專題面試真題+視頻學習詳解+Java進階學習書籍
要,希望讀者們能謹記這一點。
[外鏈圖片轉存中…(img-P9X1KY7F-1622525560618)]
[外鏈圖片轉存中…(img-bhCU9KSN-1622525560620)]
再免費分享一波我的Java專題面試真題+視頻學習詳解+Java進階學習書籍
其實面試這一塊早在第一個說的25大面試專題就全都有的。以上提及的這些全部的面試+學習的各種筆記資料,我這差不多來回搞了三個多月,收集整理真的很不容易,其中還有很多自己的一些知識總結。正是因為很麻煩,所以對以上這些學習復習資料感興趣,