新技术

Java 9

Jigsaw

Jshell

Reacative Streams

Java 10

局部变量类型推断

ThreadLocal握手机制

G1的并行Full GC

Java 11

ZGC

Epsilon

增强var

Java 12

Switch表达式

Java 13

Text Blocks

Dynamic CDS Archives

Java 14

Java打包工具

更有价值的NullPointerException

record类型

Spring 5

响应式编程

Spring Boot 2.0

http/2

http/3

性能优化

使用单例

使用Future模式

使用线程池

选择就绪

减少上下文切换

减少锁粒度

数据压缩

结果缓存

Stream并行流

GC调优

JVM内存分配调优

SQL调优

线上问题分析

dump

线程Dump

内存Dump

GC情况

dump获取及分析工具

jstack

jstat

jmap

jmap

jhat

Arthas

dump分析死锁

dump分析内存泄漏

自己编写各种outofmenory,stackoverflow程序

HeapOutOfMemory

Young OutOfMemory

MethodArea OutOfMemory

ConstantPool OutOfMemory

DirectMemory OutOfMemory

Stack OutOfMemory Stack OverFlow

Arthas

JVM相关

class/classloader相关

monitor/watch/trace相关

options

管道

后台异步任务

常见问题解决思路

内存溢出

线程死锁

类加载冲突

load飙高

CPU利用率飙高

慢SQL

常见问题解决思路

使用工具尝试解决一下问题,并写下总结

当一个Java程序响应很慢时如何查找问题

当一个Java程序频繁FullGC时如何解决问题

如何查看垃圾回收日志

当一个Java应用发生OutOfMemory时该如何解决

如何判断是否出现死锁

如何判断是否存在内存泄漏

使用Arthas快速排查Spring Boot应用404/401问题

使用Arthas排查线上应用日志打满问题

利用Arthas排查Srping Boot应用NoSuchMethodError

编译原理知识

编译与反编译

Java代码的编译与反编译

Java的反编译工具

javap

jad

CRF

即时编译器

编译器优化

操作系统知识

Linux的常用命令

find

grep

ps

cp

move

tar

head

tail

netstat

lsof

tree

wget

curl

ping

ssh

echo

free

top

进程间的通信

服务器性能指标

load

CPU利用率

内存使用情况

qps

rt

进程同步

生产者消费者问题

哲学家就餐问题

读者写者问题

缓冲区溢出

分段与分页

虚拟内存与主存

虚拟内存管理

换页算法

数据库知识

MySql执行引擎

MySql执行计划

如何查看执行计划

如何根据执行计划进行SQL优化

索引

Hash索引&B树索引

普通索引&唯一索引

聚集索引&非聚集索引

覆盖索引

最左前缀原则

索引下推

索引失效

回表

SQL优化

数据库事务和隔离级别

事务的ACID

事务的隔离级别与读现象

事务能不能实现锁的功能

编码方式

utf8

utf8mb4

为什么不用在数据库中使用utf8编码

行数统计

count(1)、count(*)、count(字段)的区别

为什么建议使用count(*)

数据库锁

共享锁、排它锁

行锁、表锁

乐观锁、悲观锁

使用数据库锁实现乐观锁

Gap Lock、Next-Key Lock

连接

内连接

左连接

右连接

数据库主备搭建

log

binlog

redolog

内存数据库

h2

分库分表

读写分离

常用的nosql数据库

redis

memcached

分别使用数据库锁、NoSql实现分布式锁

性能调优

数据库连接池

数据结构与算法知识

简单的数据库结构

队列

链表

数组

哈希表

栈队列的相同和不同之处

栈通常采用的两种存储结构

两个栈实现队列和两个队列实现栈

二叉树

字典树

平衡树

排序树

B树

B+树

R树

多路树

红黑树

大根堆

小根堆

有向图

无向图

拓扑

稳定的排序算法

冒泡排序

插入排序

鸡尾酒排序

桶排序

计数排序

归并排序

原地归并排序

二叉排序树排序

基数排序

侏儒排序

图书馆排序

块排序

不稳定的排序算法

选择排序

希尔排序

Clover排序算法

梳排序

堆排序

平滑排序

快速排序

内省排序

耐心排序

时间复杂度&空间复杂度

如何计算时间复杂度和空间复杂度

常用排序算法的时间复杂度

深度优先和广度优先搜索

全排列

贪心算法

KMP算法

hash算法

海量数据处理

分治

hash映射

堆排序

双层桶划分

Bloom fillter

bitmap

数据库索引

mapreduce

大数据知识

搜索

solr

ElasticSearch

流式计算

Storm

Spark

Flink

Hadoop,离线计算

HDFS

MapReduce

分布式日志收集

flume

kafka

logstash

数据挖掘

mahout

网络安全知识

XSS

XSS的防御

CDRF

注入攻击

SQL注入

XML注入

CRFL注入

文件上传漏洞

加密与解密

对称加密

非对称加密

哈希算法

加盐哈希算法

加密算法

MD5

SHA1

DES

AES

RSA

DSA

彩虹表

DDOS攻击

DOS攻击

DDOS攻击

memcached为什么可以导致DDos攻击

什么时反射型DDos

如何通过Hash碰撞进行DOS攻击

SSL、TLS、HTTPS

脱库、洗库、撞库