资深Java后端工程师大纲

1. Java基础

1.1 面向对象

Java面向对象基础

1.2 基本数据类型

Java基本数据类型

1.3 关键字

Java关键字总结

1.4 枚举

Java枚举

1.5 IO

Java IO

1.6 反射

反射

1.7 动态代理

Java动态代理

1.8 序列化

1.9 注解

1.10 泛型

1.11 异常处理

1.12 时间处理

1.13 编码方式

1.14 语法糖

1.15 内部类

1.16 拷贝

1.17 集合类

Java集合包

2. JVM

2.1 内存结构

2.2 垃圾回收与算法

2.3 垃圾回收器

2.4 引用类型

2.5 JVM参数及调优

2.6 性能监控与故障处理

2.7 类加载机制

2.8 编译与反编译

 

3. 数据结构与算法

3.1 简单数据结构

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

3.2 树

二叉树、字典树、平衡树、排序树、B树、B+ 树、R树、多路树、红黑树

3.3 堆

大根堆、小根堆

3.4 BitSet位图

3.5 图

有向图、无向图、拓扑

3.6 排序

3.7 查找

3.8 算法题

 

4. 数据库

4.1 Mysql

4.1.1 存储引擎

4.1.2 索引

4.1.3 数据库事务和隔离级别

4.1.4 并发策略与锁

4.1.5 范式

4.1.6 性能调优

4.1.7 集群

4.2 NoSQL

Redis开发与运维

hbase

5. 网络

5.1 分层架构

5.2 TCP/IP

5.3 HTTP

5.4 HTTPS

5.5 cookie/session

Cookie

Session

5.5 CDN

5.6 DNS

5.7 反向代理

5.8 网络模型

5.9 网络连接

5.10 负载均衡

6. 操作系统

6.1 Linux常用命令

6.2 进程、线程与协程

6.3 进程间通信

6.4 进程同步

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

6.5 缓冲区溢出

6.6 分段和分页

6.7 虚拟内存与主存

6.8 虚拟内存管理

6.9 换页算法

 

7. 并发编程

7.1 线程

线程的实现、线程的状态、优先级、线程调度、创建线程的多种方式、守护线程,线程与进程的区别

7.2 线程池

7.3 Java锁

CAS、乐观锁与悲观锁、数据库相关锁机制、分布式锁、偏向锁、轻量级锁、重量级锁、monitor、锁优化、锁消除、锁粗化、自旋锁、可重入锁、阻塞锁、死锁。

7.4 死锁

7.5 关键字

synchronized、volatile

7.6 CAS

7.7 Java并发包

Thread、Runnable、Callable、ReentrantLock、ReentrantReadWriteLock、Atomic*、Semaphore、CountDownLatch、ConcurrentHashMap、Executors

8. 设计模式

8.1 六大原则

8.2 23种设计模式

设计模式

8.3 设计模式使用场景

单例的七种写法:懒汉——线程不安全、懒汉——线程安全、饿汉、饿汉——变种、静态内部类、枚举、双重校验锁

工厂模式、适配器模式、策略模式、模板方法模式、观察者模式、外观模式、代理模式等。

设计模式在spring框架中的使用。

9. 后端常用框架与中间件

9.1 Spring

9.2 Mybatis

9.3 Tomcat

9.4 Nginx

Nginx

9.5 缓存

服务端缓存技术总结

9.6 RPC

9.7 MQ

9.8 配置中心

分布式配置中心的设计与实现

 

9.9 数据库中间层(如Sharding Jdbc)

9.10 日志系统

9.11 定时调度

9.12 API网关

9.13 阿里开源分布式事务框架FESCAR

9.14 Zookeeper

Zookeeper

10. 分布式

10.1 分布式事务

2PC、3PC、CAP、BASE、 可靠消息最终一致性、最大努力通知、TCC

10.2 分布式数据库

怎样打造一个分布式数据库、什么时候需要分布式数据库、

mycat、otter、HBase

10.3 分布式文件系统

mfs、fastdfs

10.4 分布式缓存

缓存一致性、缓存命中率、缓存冗余、一致性Hash

10.5 限流降级

Hystrix、Sentinal

10.6 分布式算法

共识算法、Raft 协议、Paxos 算法与 Raft 算法、拜占庭问题与算法、2PC、3PC

10.7 分布式ID生成

10.8 分布式锁

11. 微服务

11.1 SOA、康威定律

11.2 服务注册与发现

11.3 API网关

11.4 配置中心

11.5 链路追踪

11.6 服务熔断

11.7 API管理

11.8 Docker & Kubernets

11.9 ServiceMesh

sidecar

11.10 Spring Boot

11.11 Spring Cloud

12. 性能优化

JVM、Tomcat、Mysql调优

12.1 方法论

12.2 常用策略

13. 网络安全知识

13.1 XSS

XSS 的防御

13.2 CSRF

13.3 注入攻击

SQL 注入、XML 注入、CRLF 注入

13.4 文件上传漏洞

13.5 加密与解密

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

MD5,SHA1、DES、AES、RSA、DSA

彩虹表

13.6 DDOS攻击

DOS 攻击、DDOS 攻击

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

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

13.7 SSL、TLS、HTTPS

13.8 授权、认证

RBAC、Oauth2.0、2FA、SSO、Shiro

SSO

轻量级单点登录系统的设计与实现

14. 搜索引擎

Elasticsearch

15. 工具

15.1 Git

15.2 Maven

Maven

15.3 Intellij IDEA

16. 目前新技术

16.1 JDK新技术

16.2 其它渠道最新推送

17. 其它

17.1 监控

监控什么

CPU、内存、磁盘 I/O、网络 I/O 等

监控手段

进程监控、语义监控、机器资源监控、数据波动

监控数据采集

日志、埋点

Dapper

17.2 线上问题分析

dump 获取

线程 Dump、内存 Dump、gc 情况

dump 分析

分析死锁、分析内存泄露

dump 分析及获取工具

jstack、jstat、jmap、jhat、Arthas

自己编写各种 outofmemory,stackoverflow程序

HeapOutOfMemory、 Young OutOfMemory、

MethodArea OutOfMemory、ConstantPool OutOfMemory、

DirectMemory OutOfMemory、Stack OutOfMemory Stack OverFlow

Arthas

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

options、管道、后台异步任务

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

常见问题解决思路

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

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

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

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

如何查看垃圾回收日志

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

如何判断是否出现死锁

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

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

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

利用 Arthas 排查 Spring Boot 应用 NoSuchMethodError

18. 项目梳理

 

参考链接

https://my.oschina.net/u/3954808/blog/2961420

https://mp.weixin.qq.com/s/hlAn6NPR1w-MAwqghX1FPg

http://www.wisexplore.com/visit/shared/6c8c3c34d3b878d142abef701ae14487

 

 

 

转载于:https://my.oschina.net/u/2939155/blog/3023633

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值