圖靈學院java
廢話很少說,直接上路線,分階段進行的,從簡單基礎入手linux
階段一:數據結構git
1、基礎程序員
一、基本的數據結構面試
(1)基礎概念正則表達式
(2)數組算法
(3)鏈表sql
(4)棧shell
(5)隊列數據庫
二、樹
(1)哈夫曼樹
(2)平衡二叉樹
(3)紅黑樹
(4)B樹、B+樹
(5)LSM樹
三、圖
(1)最小生成樹
(2)最短路徑算法
(3)拓撲排序
四、排序
(1)選擇排序
(2)冒泡排序
(3)插入排序
(4)快速排序
(5)歸併排序
(6)希爾排序
(7)基數排序
(8)java中的排序工具
(9)排序算法的特色總結和性能比較
2、中級
一、KMP算法
二、布隆過濾器
三、並查集
四、符號表
五、漢諾塔
常見的面試題總結:
一、手寫排序算法,比較他們之間的性能
二、解決hash衝突的方法
三、字符串和二叉樹的手寫實現
最主要的就是手寫代碼。對於每一種數據結構和算法,都要可以手寫實現
階段二:java基礎
一、常見的集合類
(1)基礎類型和封裝類
(2)String
(3)System
二、關鍵字
(1)transient
(2)instanceof
(3)final
(4)static
(5)this
(6)super
(7)void
三、高級
(1)泛型
(2)枚舉
(3)異常
(4)註解
(5)泛型
(6)反射
(7)進制
(8)編碼轉化
四、集合類
(1)整體框架
(2)Collection
(3)ArrayList
(4)fail-fast原理
(5)LinkedList
(6)Vector
(7)Stack
(8)HashMap
(9)TreeMap
(10)LinkedHashMap
(11)HashSet
(12)TreeSet
五、其餘
(1)String爲何不可變
(2)java8新特性
(3)java九、十、十一、12新特性
(4)== 和 equal的區別
(5)HashCode方法的做用
(6)建立對象的幾種方式
每個知識點不只僅是機試中的重點,也是面試中的重點
對於java基礎知識,複習的方法就是在你學完了上面的知識點以後,在牛客網等網站一天幾十道題進行訓練。而後進行錯題總結
階段三:設計模式
一、建立型模式
(1)工廠方法模式
(2)抽象工廠模式
(3)單例模式
(4)建造者模式
(3)原型模式
二、結構型模式
(1)適配器模式
(2)裝飾模式
(3)代理模式
(4)外觀模式
(5)橋接模式
(6)組合模式
(7)享元模式
三、行爲型模式
(1)策略模式
(2)模板模式
(3)觀察者模式
(4)迭代子模式
(5)責任鏈模式
(6)命令模式
(7)備忘錄模式
(8)狀態模式
(9)訪問者模式
(10)中介者模式
(11)解釋器模式
★★☆ 設計模式的做用。
★★★ 手寫單例模式,特別是雙重檢驗鎖以及靜態內部類。
★★★ 手寫工廠模式。
★★★ 理解 MVC,結合 SpringMVC 回答。
★★★ 理解代理模式,結合 Spring 中的 AOP 回答。
★★★ 分析 JDK 中經常使用的設計模式,例如裝飾者模式、適配器模式、迭代器模式等。
階段四:java虛擬機
一、java內存結構
二、垃圾回收
三、類加載機制
四、內存分配和回收策略
五、java中的四種引用
六、jvm調優(時機、原則、目標、步驟、參數)
七、內存溢出(緣由、例子、解決方式)
全是重點
階段五:操做系統
一、操做系統的基本特徵
二、進程與線程的本質區別、以及各自的使用場景。
三、進程的幾種狀態。
四、常見的進程同步方式和線程同步
五、進程通訊方法的特色以及使用場景。(分爲windows和linux,以及共有的)
六、進程任務調度算法的特色以及使用場景。
七、死鎖的緣由、必要條件、死鎖處理。手寫死鎖代碼。java是如何解決死鎖的。
八、線程實現的方式。
九、協程的做用。
十、內存管理的方式:段式、頁式、段頁式。比較他們的區別
十一、虛擬內存的做用,分頁系統實現虛擬內存原理。
十二、頁面置換算法的原理,特別是 LRU 的實現原理,最好能手寫,再說明它在 Redis 等做爲緩存置換算法。
1三、分析靜態連接的不足,以及動態連接的特色。
能夠看書進行總結,不過這裏已經整理好了。
階段六:Linux
1、基礎
一、Linux目錄結構
二、Linux常見命令
三、Linux文件系統管理
四、Linux用戶系統管理
五、Linux進程管理
六、Linux高效的文本文件處理命令
2、中級
一、Linux網絡管理
二、Linux加密解密原理以及數據安全
三、Linux系統備份和恢復
四、shell編程
常見的面試題總結:
一、常見命令的考察,推薦指數:。
二、 殭屍進程與孤兒進程的區別,從 SIGCHLD 分析產生殭屍進程的緣由
三、 硬連接與軟連接的區別。
四、 殭屍進程與孤兒進程的區別,從 SIGCHLD 分析產生殭屍進程的緣由
常見問題連接地址:
一、46個Linux面試常見問題送給你
二、39條常見的Linux系統簡單面試題
階段七:網絡
一、基礎知識
(1)五層協議(各自的做用)
(3)物理層(集線器、交換機、路由器做用、以太網特色以及幀結構)
(4)數據鏈路層
(5)傳輸層
(6)傳輸層
(7)應用層
(8)HTTP
二、socket
(1)阻塞式IO
(2)非阻塞式IO
(3)複用IO
(4)信號驅動IO
(5)異步IO
(6)五大IO模型比較
三、序列化
(1)java序列化
(2)protoBuf
(3)ProtoStuff
(4)avro
四、Netty
(1)基本案例
(2)粘包問題解決
(3)編碼問題解決
(4)實時通訊問題解決
(5)源碼分析
五、遠程調用
(1)rmi
(2)thrift
★★★ 各層協議的做用,以及 TCP/IP 協議的特色。
★★☆ 以太網的特色,以及幀結構。
★★☆ 集線器、交換機、路由器的做用,以及所屬的網絡層。
★★☆ IP 數據數據報常見字段的做用。
★☆☆ ARP 協議的做用,以及維護 ARP 緩存的過程。
★★☆ ICMP 報文種類以及做用;和 IP 數據報的關係;Ping 和 Traceroute 的具體原理。
★★★ UDP 與 TCP 比較,分析上層協議應該使用 UDP 仍是 TCP。
★★★ 理解三次握手以及四次揮手具體過程,三次握手的緣由、四次揮手緣由、TIME_WAIT 的做用。
★★★ 可靠傳輸原理,並設計可靠 UDP 協議。
★★☆ TCP 擁塞控制的做用,理解具體原理。
★★☆ DNS 的端口號;TCP 仍是 UDP;做爲緩存、負載均衡。
★★★ GET 與 POST 比較:做用、參數、安全性、冪等性、可緩存。
★★☆ HTTP 狀態碼。
★★★ Cookie 做用、安全性問題、和 Session 的比較。
★★☆ 緩存 的Cache-Control 字段,特別是 Expires 和 max-age 的區別。ETag 驗證原理。
★★★ 長鏈接與短鏈接原理以及使用場景,流水線。
★★★ HTTP 存在的安全性問題,以及 HTTPs 的加密、認證和完整性保護做用。
★★☆ HTTP/1.x 的缺陷,以及 HTTP/2 的特色。
★★★ HTTP/1.1 的特性。
★★☆ HTTP 與 FTP 的比較。
★★☆ 五種 IO 模型的特色以及比較。
★★★ select、poll、epoll 的原理、比較、以及使用場景;epoll 的水平觸發與邊緣觸發。
階段八:併發基礎
一、基礎知識
(1)線程的概念以及案例
(2)Thread生命週期狀態
(3)Thread構造函數
(4)java內存模型
(5)線程通訊
(6)sleep和wait的區別
(7)synchronized
(8)volatile
(9)ThreadLocal
二、原子包
(1)AtomicInteger
(2)CAS原理
(3)AtomicBoolean
(4)AtomicStampedReferece
(5)Unsafe
三、併發工具
(1)CountDownLatch
(2)CyclicBarrier
(3)Semaphore
(4)Exchanger
四、鎖機制
(1)ReentrantLock
(2)ReenReadWriteLock
(3)StampedLock
(4)ForkJoin
(5)Phaser
(6)AQS原理
五、線程池
(1)Excutor
(2)Future&Callable
(3)CompletionService
(4)ExcutorService
(5)ThreadFactory
(6)CompleteableFuture
六、併發容器
(1)ConcurrentHashMap
(2)ConcurrentSkipListMap
(3)ConcurrentSkipSet
(4)ConcurrentLinkedQueue
(5)CopyOnWriteArrayList
(6)BlockingQueue
一、一共35個知識點,可是實際可能會更多,基本上都是重點,面試常考點
階段九:微服務架構
一、servlet
(1)servlet的生命週期
(2)API(get和post區別、forward和redirect區別)
(3)JSP和servlet的比較
(4)四種會話跟蹤技術
(5)request對象的主要方法
(6)cookie和session的比較
二、Srping
(1)Spring架構(七大模塊概述)
(2)Spring上下文和容器
(3)Spring加載機制
(4)SpringBean探祕
(5)AOP與代理
三、SpringMVC
(1)SpringMVC架構與流程
(2)DispatcherServlet的實現
(3)每一控制器的流程解讀
四、Springboot
(1)SpringBoot入門
(2)整合其餘技術
(3)打包部署
(4)actuator監控
(5)源碼分析
五、SpringCloud
(1)服務註冊與發現Eureka
(2)客戶端負載均衡Ribbon
(3)聲明式Rest調用Feign
(4)容錯機制Hystrix
(5)服務網關Zuul
(6)配置中心Apollo
(7)負載均衡算法
Spring常見面試題
SpringMVC常見面試題
階段十:分佈式架構
一、基礎
(1)CAP理論
(2)BASE理論
二、框架
(1)Dubbo服務治理
(2)Zookeeper協調
(3)Nginx
Spring常見面試題
SpringMVC常見面試題
階段十一:數據庫
一、Mysql
(1)UML圖
(2)Mysql基本操做
(3)視圖、函數、存儲過程、變量、事務、流程控制、遊標、權限管理
(4)索引
(5)查詢性能優化
(6)存儲引擎的比較
(7)切分:水平和豎直,sharding策略和問題
(8)複製:主從複製和讀寫分離
二、Redis
三、MongoDB
四、ElasticSearch
五、中間件:AQ、RQ、Kafka
六、JDBC
七、Mybatis
八、fastDFS
九、Mycat
★★★ B+ Tree 原理,與其它查找樹的比較。
★★★ MySQL 索引以及優化。
★★★ 查詢優化。
★★★ InnoDB 與 MyISAM 比較。
★★☆ 水平切分與垂直切分。
★★☆ 主從複製原理、做用、實現。
★☆☆ redo、undo、binlog 日誌的做用。
★★☆ 字典和跳躍表原理分析。
★★★ 使用場景。
★★★ 與 Memchached 的比較。
★☆☆ 數據淘汰機制。
★★☆ RDB 和 AOF 持久化機制。
★★☆ 事件驅動模型。
★☆☆ 主從複製原理。
★★★ 集羣與分佈式。
★★☆ 事務原理。
★★★ 線程安全問題。
階段十二:工具
一、git
二、日誌
三、測試Junit
四、Docker
五、Tomcat
六、正則表達式
七、Maven
八、k8s
階段十三:安全
一、Shiro
二、對稱加密
三、數字簽名
四、Base64
五、Tomcat
六、正則表達式
七、Maven
八、k8s
階段十四:面試算法題
儘管java架構師必備技能已經分享給你們,但有多少人能認真的去踐行,這個就難說了。互聯網寒冬已經到來,做爲程序員,更應在此時提升本身,有着更高遠的追求。
篇幅有限,若是須要更詳細的java在線學習資料可加博主扣:1993712276,或者去源碼官網查看