一 學習路線

程序員基礎篇

JVM內存結構java

堆、棧、方法區、直接內存、堆和棧區別。react

Java內存模型 nginx

內存可見性、重排序、順序一致性、volatile、鎖、final程序員

垃圾回收 redis

內存分配策略、垃圾收集器(G1)、GC算法、GC參數、對象存活的斷定 。算法

JVM參數及調優 Java對象模型 sql

oop-klass、對象頭。shell

HotSpot 數據庫

即時編譯器、編譯優化。apache

類加載機制 

classLoader、類加載過程、雙親委派(破壞雙親委派)、模塊化(jboss modulesosgijigsaw)。

虛擬機性能監控與故障處理工具 

jps, jstack, jmapjstat, jconsole, jinfo, jhat, javap, btraceTProfiler

閱讀源代碼

StringIntegerLongEnumBigDecimalThreadLocalClassLoader & URLClassLoaderArrayList & LinkedListHashMap & LinkedHashMap & TreeMap & CouncurrentHashMapHashSet & LinkedHashSet & TreeSet

Java中各類變量類型 熟悉Java String的使用,熟悉String的各類函數 

JDK 6JDK 7substring的原理及區別;

replaceFirstreplaceAllreplace區別;

String「+」的重載;

String.valueOfInteger.toString的區別;

字符串的不可變性。

自動拆裝箱 

Integer的緩存機制。

熟悉Java中各類關鍵字 

transientinstanceofvolatilesynchronizedfinalstaticconst 原理及用法。

集合類 

經常使用集合類的使用;

ArrayListLinkedListVector的區別 ;

SynchronizedListVector的區別;

HashMapHashTableConcurrentHashMap區別;

Java 8stream相關用法;

apache集合處理工具類的使用;

不一樣版本的JDKHashMap的實現的區別以及緣由。

枚舉 

枚舉的用法、枚舉與單例、Enum類。

Java IO&Java NIO,並學會使用 

bionioaio的區別、三種IO的用法與原理、netty

Java反射與javassist 

反射與工廠模式、java.lang.reflect.*

Java序列化 

什麼是序列化與反序列化、爲何序列化;

序列化底層原理;

序列化與單例模式;

protobuf

爲何說序列化並不安全。

註解 

元註解、自定義註解、Java中經常使用註解使用、註解與反射的結合。

JMS 

什麼是Java消息服務、JMS消息傳送模型。

JMX 

java.lang.management.*javax.management.*

泛型 

泛型與繼承;

類型擦除;

泛型中K T V E

object等的含義、泛型各類用法。

單元測試 

junitmockmockito、內存數據庫(h2)。

 

2.程序員進階篇

會使用經常使用設計模式 

單例、策略、工廠、適配器、責任鏈。

實現AOP 實現IOC 不用synchronized和lock,實現線程安全的單例模式 nio和reactor設計模式 

字節碼、class文件格式

CPU緩存,L1,L2,L3和僞共享 尾遞歸 位運算 

用位運算實現加、減、乘、除、取餘

tcpudphttphttps等經常使用協議

三次握手與四次關閉、流量控制和擁塞控制、OSI七層模型、tcp粘包與拆包

http/1.0 http/1.1 http/2以前的區別 Java RMI,Socket,HttpClient cookie 與 session 

cookie被禁用,如何實現session

Java寫一個簡單的靜態文件的HTTP服務器 

實現客戶端緩存功能,支持返回304 實現可併發下載一個文件 使用線程池處理客戶端請求 使用nio處理客戶端請求 支持簡單的rewrite規則 上述功能在實現的時候須要知足開閉原則

瞭解nginx和apache服務器的特性並搭建一個對應的服務器 Java實現FTP、SMTP協議 進程間通信的方式 什麼是CDN?若是實現? 什麼是DNS? 反向代理 

Servlet線程安全問題

Servlet中的filter和listener Hibernate的緩存機制 Hiberate的懶加載 Spring Bean的初始化 Spring的AOP原理 本身實現Spring的IOC Spring MVC Spring Boot2.0 

Spring Bootstarter原理,本身實現一個starter

Spring Security 

 

3.程序員高級篇

lambda表達式、Stream API

Java 9 

JigsawJshellReactive Streams

Java 10 

局部變量類型推斷、G1的並行Full GCThreadLocal握手機制

Spring 5 

響應式編程

Spring Boot 2.0 

Linux的經常使用命令

進程同步 緩衝區溢出 分段和分頁 虛擬內存與主存 

MySql 執行引擎

MySQL 執行計劃 

如何查看執行計劃,如何根據執行計劃進行SQL優化

SQL優化 事務 

事務的隔離級別、事務能不能實現鎖的功能

數據庫鎖 

行鎖、表鎖、使用數據庫鎖實現樂觀鎖、

數據庫主備搭建 binlog 內存數據庫 

h2

經常使用的nosql數據庫 

redismemcached

分別使用數據庫鎖、NoSql實現分佈式鎖 性能調優 

簡單的數據結構

棧、隊列、鏈表、數組、哈希表、

 

二叉樹、字典樹、平衡樹、排序樹、B樹、B+樹、R樹、多路樹、紅黑樹

排序算法 

各類排序算法和時間複雜度 深度優先和廣度優先搜索 全排列、貪心算法、KMP算法、hash算法、海量數據處理

 

4.程序員架構篇

數據一致性、服務治理、服務降級

分佈式事務 

2PC3PCCAPBASE、 可靠消息最終一致性、最大努力通知、TCC

Dubbo 

服務註冊、服務發現,服務治理

分佈式數據庫 

怎樣打造一個分佈式數據庫、何時須要分佈式數據庫、mycatotterHBase

分佈式文件系統 

mfsfastdfs

分佈式緩存 

緩存一致性、緩存命中率、緩存冗餘

SOA、康威定律

ServiceMesh Docker & Kubernets Spring Boot Spring Cloud 

分庫分表

CDN技術 消息隊列 

ActiveMQ

相關文章
相關標籤/搜索