還有一點就是, 先去拿到一個滿意的Offer對你後期面試的自信心的提高是很大的 , 因此怎麼說呢 , 對於零offer的人來講 , 每次面試的緊張程度都是很高的, 尤爲是大廠的4輪起步的面試吧, 哎 , 加油吧. 就是自信就完事了, 真的別緊張.html
還有一點介意的就是, 無論大公司小公司, 要多投, 多面試, 多總結, 由於面試不花錢的, 只是花你的時間,你要是以爲你的時間比一次面試的時間寶貴, 當我沒說, 並且多面試, 你會總結出一些問題, 發現一些問題,也會掌握必定的面試技巧, 沒有人一次面試就能夠拿到一個滿意的offer的.react
還有須要一個好的簡歷, 怎麼說呢, 看你用不用心吧, 其次就是要有本身的亮點, 反正我不喜歡那種包裝簡歷的, 實打實本身作的, 寫上去就好了. 還有別在乎項目大小, 在於你心中的地位這個項目對於你, 你對他的瞭解 , 掌握 , 感覺 ,新心得吧 .git
最後一個介意, 做爲開發者, 必定要有本身的Github帳號(網慢,打不開, 自行解決, 方式多種 , 記住必定要用.), 以及常常玩 , 好比上傳一些項目哇 , 好比簡歷上寫一些連接. 還有就是寫本身的博客 , 記住博客對於你的提高特別大 , 真心的 .github
廢話很少說, 開題了吧 .面試
我是非科班, 基本對於計算機基礎, 可能看的重,看的輕,可是對於開發的話, 理解計算機基礎對於後期的發展很重要。 就是底層理解了, 就能夠打通你的任督二脈了。算法
OSI 七層模型 , 必須所有掌握 , 核心是 網絡層和傳輸層,必要的應用層也必須掌握。spring
也就是說 , 理解計算機網絡分層協議, 每一層的做用。 同時好比各類協議的做用是什麼。數據庫
核心的我說一下, IP (ARP , ICMP), TCP , UDP , 好比字節等作流媒體的會問 , RTP , RTCP 哇, 基本會問這些,能夠核心的去看一下,編程
TCP 比較重要, 要理解他的全部機制。後端
HTTP 也是很是重要, 也要理解他的全部機制。
HTTPS , TLS/SSL 掌握是最好了, 加分項。
Http2.0 、 1.1 、1.0 掌握三者區別更好了, 解決了什麼問題,哈哈哈。
我這裏留了一個 up博主, CodeSheep 的一篇計算機網絡掌握的東西,你能夠B站找一下。
基本的數據結構, 都須要瞭解 ,數組(核心),鏈表(核心),隊列,棧,樹(核心),圖(考的不是太多)。 由於不是作人工智能的。
這些是你算法的基礎。
看本身能力吧, 瞭解仍是頗有必要的。
操做系統的話, 瞭解一些 進程 , 線程如何建立和管理, 進程間通訊哇。
對於後端來講, 線程和進程須要深度理解. 好比線程的調度算法, 線程的啓動流程 , 反正線程和進程是重點.
組成原理, 我以爲我瞭解的很少,因此很少說了,怕誤導人。 後面面試我再總結吧。
能夠把Linux操做和理解也能夠學習一下。不一樣平臺的和內核,其實不少實現有差別,好比網絡,內存等哇。
核心吧 , 我以爲大廠 、中等廠 、 校招基本必考 ,其實你發現算法好的人,敲代碼確實牛逼 . 還有就是對於考察算法這個環節 , 並非求出答案就好了, 通常筆試能夠這麼作 , 可是跟HR面試的話, 通常要求看你的解法可能多樣化 , 看你的瞭解程度 , 從一開始的高時間複雜度, 高空間複雜度 - > 高時間複雜度 -> 繼續優化複雜度 -> 最後得出最優的算法. 反正記住算法核心的思想 , 千萬別被背題目 , 要多總結和作一些技巧上的總結吧.
算法篇分爲 算法(核心) 、智力題 (也有不少是這種題目,主要是看你的反應能力吧,我以爲智力題,門檻算低的了,不少其實就是數學題)、 機率論(吐槽,不少都是,排列組合問題,機率題,牛客的筆試一堆是這些)。
算法 : 推薦刷 LeetCode (各類題型10道左右吧 , 別順序刷 , 看本身不會的吧.)
必須掌握的 : 9種排序算法(有些可能不太理解爲啥這麼寫,我以爲畫圖是最好的方式), 字符串操做 , 數組題目 ,鏈表操做 (全翻轉,部分翻轉), 樹的遍歷等這些要倒背如流 , 特別是遞歸的思想(DFS的思想), 這些是基礎。
進階 :DFS題目 , 二分(有序數組)/分治和歸併思想的算法 , 回溯算法 , 貪心算法 ,DP (優化一些重複行操做等問題, 就是複雜度低. 有點像dfs,可是帶有記憶化,常見的還有就是要求遞推表達式吧(必定要有規律).),
你們能夠看看我作的lc練習題 , 我作的題目也比較經典 , github.com/Anthony-Don…
這個是我博客的一些算法, 瞎寫了點, 等你練多了, 我以爲你就懶得總結了. 小兒科吧, 哈哈哈 : anthony-dong.gitee.io/tag/BsE8X7H…
這個算法, 我一直練着 , 也看了一個視頻課程, 是極客時間的算法40講 , time.geekbang.org/course/intr… , 連接就是這個,看視頻主要是以爲, 理解別人的思惟, 能夠轉變一下本身的思惟。
Java語言掌握程度, 我懶得說 , 集合類的掌握(太基礎了, 常問的 , 最後說出亮點 , 好比你以爲它哪裏作的很差)
多線程(高併發問題,我以爲我真不知道這裏咋說,無語, 這裏推薦一下我學習多線程總結的博客地址 : anthony-dong.gitee.io/tag/ujp75i9… ) , JUC包 (核心實際上是AQS , 能夠說出你使用的場景最好, 解決了什麼問題 ,能夠看看《Java併發編程》這本書,還有就是BlockQueue) , 網絡IO編程(核心是NIO吧, 其餘的好比OIO,AIO我感受不必 , 有次問我Java的NIO網絡編程的BUG是啥,如何解決)。
還有就是 , Java的反射機制,還有就是動態代理, 其次就是使用場景了, 別局限於Spring的IOC和AOP , 說出其餘的就是加分項。
Java的其餘序列化機制, 語法機制 , 好比泛型問題、 拆箱裝箱問題、各個Java版本的迭代的 , 好比還有特殊的Java關鍵字的含義和做用, 都須要理解和掌握。
常見的掌握就好了, 說出你的使用場景 , 最好了,
我感受基礎吧。 《深刻理解Java虛擬機》 (第三版 , 周志明) 這本書, 不讀個 2-3遍 我以爲對不起, 你學了JVM 。
主要是這本書裏的東西 所有掌握吧。 我不瞭解的很少 , 核心主要是 JMM (Java內存模型) , 類的加載機制, GC問題, 以及GC的算法 , Java的內存分配邏輯。書讀多了,天然這些就理解了。
字節碼技術 ? , JNI問題? ,內存泄漏排查? , JDK的工具使用 ? , 如何定位OOM的問題 , 如何查找出由於哪一個地方內存沒有被釋放 ? 如何定位死鎖? 如何定位CPU出現100%的問題 ? 如何線上記錄發現這些問題? , 不少吧, 我不說了 , 看能力。
掌握一個數據庫, 我就是MySQL, 掌握一個數據庫引擎 , 我學的是 Innodb 。
掌握使用, 大廠通常不考, 寫SQL .可是也會有場景題目。
掌握Innodb的基本原理, 核心是索引如何實現的, 底層的一些知識吧, 掌握了其實就理解了, 什麼B+樹 , 什麼索引匹配哇, 索引機制 , 核心是圍繞着索引, 因此你要理解索引的流程。
瞭解 MySQL 的主從機制, 其實就不錯了, 分庫分表我以爲很少 ,能夠了解一下。
瞭解MySQL 的日誌機制 和 Innodb的日誌機制, 指的是記錄的,
瞭解如何定位 慢查詢, 也就是分析爲啥出現較慢的現象, 最好邏輯清晰 。
瞭解 數據庫操做的執行流程, 好比某些關鍵字是如何執行的. 好比where , limit , 等吧.
MySQL提供的的事務的四大隔離級別哇 .
MySQL 鎖的機制, 好比行鎖是如何實現的 , 等等吧, 事務通常都是加鎖操做麼 .
Spring提供的事務的七種傳播機制。
瞭解自己提供的數據結構以及底層數據結構實現最好了, 好比zset 實現,跳錶 , 常常被考的 。
瞭解如何解決分佈式緩存問題, 也就是緩存不一致的現象。
理解如何解決, expire的問題。
理解他的工做機制 , 好比單線程爲啥好 , 還有他的持久化機制 , AOF , RDB的區別。
集羣,要是你懂, 我真的點贊 , 當時知道的越多越好了. 哈哈哈哈.
我核心掌握的是 kafka 和 rocketmq
瞭解主要實現機制, 是必備的。 掌握一種起步。
瞭解kafka爲啥快, 還有一些問題, 自行百度, 好比他的 rebalance機制。
瞭解kafka的可靠性實現. / rocketmq也是 如何保證可靠性
瞭解rocketmq的一些事務機制 。
瞭解加入MQ後 , 保證事務的基本特性 , 原子性如何實現, 好比訂單寫入數據庫了, 可是消息發送的時候失敗了, 建立訂單和消息發送是一個原子性操做, rocketmq是如何實現(其實就是兩階段提交)。
其實分佈式事務是最噁心的, 別被本身帶溝裏
Zookeeper 等也是優秀的中間件, 能夠深刻學習 , 好比人人都說的分佈式鎖, 分佈式協調等.
這個就是深刻理解Java的 Servlet 吧. 好比 Servlet , Filter, Listener , Context等哇.
還有就是 Request 和 Response , 還有就是Cookie/ Session的理解吧. 其實就是對於Http的理解.
還有就是 Servlet容器 , 好比Tomcat的理解吧.
spring基本思想和原理哇,SpringMVC的基本原理和思想, 進階到 SpringBoot ,瞭解SpringBoot的啓動機制和流程 , 最後學習微服務涉及到的SpringCloud
Hibernate(JPA) , Mybatis(實現原理和一些常見問題) , 這倆二選一 , 不過推薦後者. 二者都會更好.
Springcloud系列的 , 比較入門簡單 ,我這裏有個官方文檔的連接 www.springcloud.cc/spring-clou…, 封裝都是現成的 ,上手簡單, 好比 gateway/zuul , config ,stream(好比統一了mq) , sleuth(圍繞着zipkin) , 註冊中心(eureka,consul(go實現)) , 熔斷器(hystrix ),負載均衡 ribbon ,
他的RPC地實現。
高併發三大利器, 緩存, 限流, 降級 哈哈哈哈
dubbo系列的, dubbo的RPC ,sentinel (降級限流) , nacos (註冊中心+配置中心) , seata(分佈式事務)
地址就是 github.com/alibaba/spr… , 不必定走整合spring-cloud系列的。
微服務這塊是一個加分項目, 不回也罷, 隨意了。 看能力吧,不必定說纔是最好的結果, 有的時候說給你是挖坑。
還有就是 微服務的利與弊 , 基本必考。
還有一些框架我沒說, 我學過的 Google的框架, Guava,Guice。 攜程的Apollo ,還有好比權限框架(Solr,Spring系, Auth2) ,任務調度的quartz等等。
其實就是深刻理解和使用罷了。 想學習的 極客時間有一個課程不錯, 基本覆蓋的挺全的, 可是切記, 必定要多敲。 多看別人的代碼, 而不是他寫的Demo, 能夠看看好比Dubbo框架 , 或者 reactor-netty框架的源碼, 好好看看。
Dubbo協議的 Dubbo框架, Google的GRPC(核心是Protobuf協議) , Http協議的 RestRpc,DubboX , Twitter和Facebook都有他們的能夠了解一下。
掌握和掌握流程實現最好了, 和一些問題。
能夠了解和掌握。
好比其餘語言 (C++, Golang , Scala), 其餘領域(大數據, 算法 , 人工智能) 也能夠說說。
核心, 我認爲是你本身作的, 無論大於小, 學到的東西能夠和麪試官說出來就行了, 不比在意大小。
個人項目是 : github.com/Anthony-Don…
好多內容 , 我博客都有, 博客地址 : anthony-dong.gitee.io/
Github地址 : github.com/Anthony-Don…