Java从入门到入坑(高级篇)

01:新技术

1:Java 8

lambda 表达式、Stream API、时间 API

2:Java 9

Jigsaw、Jshell、Reactive Streams

3:Java 10

局部变量类型推断、G1 的并行 Full GC、ThreadLocal 握手机制

4:Java 11

ZGC、Epsilon、增强 var

5:Spring 5

响应式编程

6:Spring Boot 2.0

7:HTTP/2

8:HTTP/3

02:性能优化

使用单例、使用 Future 模式、使用线程池

选择就绪、减少上下文切换、减少锁粒度、数据压缩、结果缓存

03:线上问题分析

1:dump 获取

线程 Dump、内存 Dump、gc 情况

2:dump 分析

分析死锁、分析内存泄露

3:dump 分析及获取工具

jstack、jstat、jmap、jhat、Arthas

4:自己编写各种 outofmemory,stackoverflow 程序

HeapOutOfMemory、 Young OutOfMemory、

MethodArea OutOfMemory、ConstantPool OutOfMemory、

DirectMemory OutOfMemory、Stack OutOfMemory Stack OverFlow

5:Arthas

jvm 相关、class/classloader 相关、monitor/watch/trace 相关、

options、管道、后台异步任务

文档:https://alibaba.github.io/arthas/advanced-use.html

6:常见问题解决思路

内存溢出、线程死锁、类加载冲突

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

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

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

如何查看垃圾回收日志

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

如何判断是否出现死锁

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

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

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

利用 Arthas 排查 Spring Boot 应用 NoSuchMethodError

04:编译原理知识

1:编译与反编译

2:Java 代码的编译与反编译

3:Java 的反编译工具

javap 、jad 、CRF

4:即时编译器

5:编译过程

词法分析,语法分析(LL 算法,递归下降算法,LR 算法)

语义分析,运行时环境,中间代码,代码生成,代码优化

05:操作系统知识

1:Linux 的常用命令

2:进程间通信

3:进程同步

生产者消费者问题、哲学家就餐问题、读者写者问题

4:缓冲区溢出

5:分段和分页

6:虚拟内存与主存

7:虚拟内存管理

8:换页算法

06:数据库知识

1:MySQL 执行引擎

2:MySQL 执行计划

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

3:索引

Hash 索引、B 树索引(B+树、和B树、R树)

普通索引、唯一索引

覆盖索引、最左前缀原则、索引下推

4:SQL 优化

5:数据库事务和隔离级别

事务的隔离级别、事务能不能实现锁的功能

6:数据库锁

行锁、表锁、使用数据库锁实现乐观锁、

7:连接

内连接,左连接,右连接

8:数据库主备搭建

9:binlog

10:redolog

11:内存数据库

h2

12:分库分表

13:读写分离

14:常用的 NoSql 数据库

redis、memcached

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

16:性能调优

17:数据库连接池

07:数据结构与算法知识

1:简单的数据结构

栈、队列、链表、数组、哈希表、

栈和队列的相同和不同之处

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

2:树

二叉树、字典树、平衡树、排序树、

B 树、B+ 树、R 树、多路树、红黑树

3:堆

大根堆、小根堆

4:图

有向图、无向图、拓扑

5:排序算法

稳定的排序:冒泡排序、插入排序、鸡尾酒排序、桶排序、计数排序、归并排序、原地归并排序、二叉排序树排序、鸽巢排序、基数排序、侏儒排序、图书馆排序、块排序

不稳定的排序:选择排序、希尔排序、Clover 排序算法、梳排序、堆排序、平滑排序、快速排序、内省排序、耐心排序

各种排序算法和时间复杂度 

6:两个栈实现队列,和两个队列实现栈

7:深度优先和广度优先搜索

8:全排列、贪心算法、KMP 算法、hash 算法

9:海量数据处理

分治,hash 映射,堆排序,双层桶划分,Bloom Filter,bitmap,数据库索引,mapreduce 等。

08:大数据知识

1:Zookeeper

基本概念、常见用法

2:Solr,Lucene,ElasticSearch

在 linux 上部署 solr,solrcloud,新增、删除、查询索引

3:Storm,流式计算,了解 Spark,S4

在 linux 上部署 storm,用 zookeeper 做协调,运行 storm hello world,local 和 remote 模式运行调试 storm topology。

4:Hadoop,离线计算

HDFS、MapReduce

5:分布式日志收集 flume,kafka,logstash

6:数据挖掘,mahout

09:网络安全知识

1:XSS

XSS 的防御

2:CSRF

3:注入攻击

SQL 注入、XML 注入、CRLF 注入

4:文件上传漏洞

5:加密与解密

对称加密、非对称加密、哈希算法、加盐哈希算法

MD5,SHA1、DES、AES、RSA、DSA

彩虹表

6:DDOS攻击

DOS 攻击、DDOS 攻击

memcached 为什么可以导致 DDos 攻击、什么是反射型 DDoS

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

7:SSL、TLS,HTTPS

8:用 openssl 签一个证书部署到 apache 或 nginx

你可能感兴趣的:(Java从入门到入坑(高级篇))