前言
如果把Java比喻成一颗繁荣茂盛的大树。
首先,它需要土壤(JVM),需要主干(基础),枝杈(扩展),肥料(设计模式)。当然,如果想要让这个树茁壮的成长,我们还需要学习一些灌溉的知识(操作系统),甚至来说我们还需要一些生物专业的知识(数据结构和算法),甚至于我们了解树的每一个细胞,可以去研学细胞学的知识(源码)。
现在我们有了一棵树,我们还需要知道如果这棵树上有了害虫之后怎么除虫(安全攻防)。当然,我们如果不满足一颗树,我们需要的是一片树林,那么我们需要知道怎么把这些树合理的安排而可以茁壮互不影响的成长(分布式架构)。
所以,我们下面就来详细的了解如果想要把这些搞明白,需要学习哪些知识:
基础
- 数据类型
- 运算符
- 字符串
- 控制流程
- 数组
- 对象与类
- static关键字
- 对象构造
- 注释
- 继承
- Object
- 对象包装与自动装箱机制
- 枚举
- 反射
- 接口
- Lambda
- 内部类
- 代理
- 异常
- 断言
- 日志
- 泛型
- 了解泛型
- 泛型的约束和局限性
- 继承规则
- 通配符类型
- 反射和泛型
- 集合
- 集合整体认知
- 集合详解
- 映射
- 视图与包装器
- 集合中的算法
- Java IO
- 单元测试
- 序列化
- 并发
- 线程认知
- 线程安全
- 锁
- 死锁
- volatile域
- synchronized关键字
- 原子性
- 执行器
- 同步器
- notify ,notifyAll, wait, sleep
- 语法糖
JVM
- 类的加载机制
- Jvm内存结构
- GC算法 垃圾回收
- GC分析 命令调优
- HotSpot
- 工具的使用篇
分布式架构
- 分布式事务
- 分布式数据库
- 分布式文件系统
- 分布式缓存
- Docker & k8s
- Spring Cloud
- Spring Boot
- 分库分表
- 消息中间件
- Zookeeper
扩展
- 网络知识
- 网络协议
- Socket编程
- Netty
- Nginx实现反向代理,负载均衡
- CDN
- DNS
- 数据库
- SQL优化
- 数据库锁
- 缓存数据库 Redis Memcached
- 事务
- 搜索引擎
- Solr
- Lucene
- ES
- 权限管理:
- Shiro
- AI
- Python
- 概率论
- 机器学习
- 人工神经网络
- 深度学习
- TensorFlow
设计模式
详细目录需精读《Head First 设计模式》之后再进行补充
操作系统
- Linux常用命令
- 其他目录需阅读《鸟哥的Linux私房菜》之后再进行完善
数据结构和算法
详细目录需精读《算法》和《算法导论》之后在进行补充
安全攻防
详细目录需详细阅读《黑客攻防技术宝典》以及更多的书籍后进行补充。
写作计划
顺序如下:
基础 -> JVM -> 分布式架构 -> 扩展 -> 设计模式 -> 操作系统 -> 数据结构和算法 -> 安全攻防。(源码的学习穿插于大多数步骤,一般会对一些经典的类和框架进行源码的研读)
每日一更,详细讲解上述内容,除了个别的会单独拿出来作为一个系列(比如docker,springboot),基本上是按照顺序来讲解。计划三到五年写完,每周末更新预告下周目录。
公众号
文章首发于公众号和个人博客 http://vi-young.com
扫码或微信搜索Vi的技术博客,关注公众号,不定期送书活动各种福利~
扫描二维码关注公众号,回复:
2127841 查看本文章