JVM內存結構java
堆、棧、方法區、直接內存、堆和棧區別。react
Java內存模型 nginx
內存可見性、重排序、順序一致性、volatile、鎖、final。程序員
垃圾回收 redis
內存分配策略、垃圾收集器(G1)、GC算法、GC參數、對象存活的斷定 。算法
JVM參數及調優 Java對象模型 sql
oop-klass、對象頭。shell
HotSpot 數據庫
即時編譯器、編譯優化。apache
類加載機制
classLoader、類加載過程、雙親委派(破壞雙親委派)、模塊化(jboss modules、osgi、jigsaw)。
虛擬機性能監控與故障處理工具
jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, btrace、TProfiler。
閱讀源代碼
String、Integer、Long、Enum、BigDecimal、ThreadLocal、ClassLoader & URLClassLoader、ArrayList & LinkedList、 HashMap & LinkedHashMap & TreeMap & CouncurrentHashMap、HashSet & LinkedHashSet & TreeSet。
Java中各類變量類型 熟悉Java String的使用,熟悉String的各類函數
JDK 6和JDK 7中substring的原理及區別;
replaceFirst、replaceAll、replace區別;
String對「+」的重載;
String.valueOf和Integer.toString的區別;
字符串的不可變性。
自動拆裝箱
Integer的緩存機制。
熟悉Java中各類關鍵字
transient、instanceof、volatile、synchronized、final、static、const 原理及用法。
集合類
經常使用集合類的使用;
ArrayList和LinkedList和Vector的區別 ;
SynchronizedList和Vector的區別;
HashMap、HashTable、ConcurrentHashMap區別;
Java 8中stream相關用法;
apache集合處理工具類的使用;
不一樣版本的JDK中HashMap的實現的區別以及緣由。
枚舉
枚舉的用法、枚舉與單例、Enum類。
Java IO&Java NIO,並學會使用
bio、nio和aio的區別、三種IO的用法與原理、netty。
Java反射與javassist
反射與工廠模式、java.lang.reflect.*。
Java序列化
什麼是序列化與反序列化、爲何序列化;
序列化底層原理;
序列化與單例模式;
protobuf;
爲何說序列化並不安全。
註解
元註解、自定義註解、Java中經常使用註解使用、註解與反射的結合。
JMS
什麼是Java消息服務、JMS消息傳送模型。
JMX
java.lang.management.*、javax.management.*。
泛型
泛型與繼承;
類型擦除;
泛型中K T V E ;
object等的含義、泛型各類用法。
單元測試
junit、mock、mockito、內存數據庫(h2)。
會使用經常使用設計模式
單例、策略、工廠、適配器、責任鏈。
實現AOP 實現IOC 不用synchronized和lock,實現線程安全的單例模式 nio和reactor設計模式
字節碼、class文件格式
CPU緩存,L1,L2,L3和僞共享 尾遞歸 位運算
用位運算實現加、減、乘、除、取餘
tcp、udp、http、https等經常使用協議
三次握手與四次關閉、流量控制和擁塞控制、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 Boot的starter原理,本身實現一個starter
Spring Security
lambda表達式、Stream API、
Java 9
Jigsaw、Jshell、Reactive Streams
Java 10
局部變量類型推斷、G1的並行Full GC、ThreadLocal握手機制
Spring 5
響應式編程
Spring Boot 2.0
Linux的經常使用命令
進程同步 緩衝區溢出 分段和分頁 虛擬內存與主存
MySql 執行引擎
MySQL 執行計劃
如何查看執行計劃,如何根據執行計劃進行SQL優化
SQL優化 事務
事務的隔離級別、事務能不能實現鎖的功能
數據庫鎖
行鎖、表鎖、使用數據庫鎖實現樂觀鎖、
數據庫主備搭建 binlog 內存數據庫
h2
經常使用的nosql數據庫
redis、memcached
分別使用數據庫鎖、NoSql實現分佈式鎖 性能調優
簡單的數據結構
棧、隊列、鏈表、數組、哈希表、
樹
二叉樹、字典樹、平衡樹、排序樹、B樹、B+樹、R樹、多路樹、紅黑樹
排序算法
各類排序算法和時間複雜度 深度優先和廣度優先搜索 全排列、貪心算法、KMP算法、hash算法、海量數據處理
數據一致性、服務治理、服務降級
分佈式事務
2PC、3PC、CAP、BASE、 可靠消息最終一致性、最大努力通知、TCC
Dubbo
服務註冊、服務發現,服務治理
分佈式數據庫
怎樣打造一個分佈式數據庫、何時須要分佈式數據庫、mycat、otter、HBase
分佈式文件系統
mfs、fastdfs
分佈式緩存
緩存一致性、緩存命中率、緩存冗餘
SOA、康威定律
ServiceMesh Docker & Kubernets Spring Boot Spring Cloud
分庫分表
CDN技術 消息隊列
ActiveMQ