部分转自:https://github.com/hollischuang/toBeTopJavaer

基础部分

一、面向对象

二、Java基础知识

三、阅读源代码

  • String
  • Integer
  • Long
  • Enum
  • BigDecimal
  • ThreadLocal
  • ClassLoader和URLClassLoader
  • ArrayList和LinkedList
  • HashMap,LinkedHashMap,TreeMap和CouncurrentHashMap
  • HashSet,LinkedHashSet和TreeSet

四、Java并发编程

  • 并发与并行
  • 线程
  • 线程池
  • 线程安全
  • 死锁
  • synchronized
  • volatile
  • sleep和wait
  • notify和notifyAll
  • ThreadLocal
  • 用代码解决生产者消费者问题
  • 并发包

底层部分

一、JVM部分

  • JVM内存结构
  • Java内存模型
  • 垃圾回收
  • JVM参数及优化
  • Java对象模型
  • HotSpot
  • 虚拟机性能监控与故障处理工具

二、类加载机制

  • classLoader
  • 类加载过程
  • 双亲委派
  • 模块化

三、编译与反编译

  • 什么是编译
  • 什么是反编译
  • JIT
  • 编译工具
  • 反编译工具

进阶部分

一、Java底层知识

  • 字节码
  • class文件格式
  • CPU缓存,L1,L2,L3和伪共享
  • 尾递归
  • 位运算

二、设计模式

  • 了解23种设计模式
  • 会使用常用设计模式
  • 实现AOP
  • 实现IOC
  • 不适用synchronized和lock,实现线程安全的单例模式
  • nio和reactor设计模式

三、网络编程知识

  • TCP,UDP,Http,Https等常用协议
  • Http/1.0,Http/1.1,Http/2之间的区别
  • Http/3
  • Java RMI,Socket,HttpClient
  • cookie与session
  • 用Java写一个简单的静态文件的Http服务器
  • 了解Nginx和apache服务器的特性并搭建一个对应的服务器
  • 用Java实现FTP,SMTP协议
  • 进程间通讯的方式
  • CDN
  • DNS
  • 反向代理

四、框架知识

  • Servlet
  • Hibernate
  • Spring
  • Spring MVC
  • Spring Boot
  • Spring Security
  • Spring Cloud

五、应用服务器知识

  • JBoss
  • tomcat
  • jetty
  • Weblogic

六、工具

  • git & svn
  • maven & gradle
  • IntelliJ IDEA

高阶部分

一、各版本新知识

  • Java8
  • Java9
  • Java10
  • Java11
  • Spring5
  • Spring Boot2.0
  • HTTP/2
  • HTTP/3

二、性能优化

  • 使用单例
  • 使用Future模式
  • 使用线程池
  • 选择就绪
  • 减少上下文切换
  • 减少锁粒度
  • 数据压缩
  • 结果缓存

三、线上问题分析

  • dump获取
  • dump分析
  • dump分析及获取工具
  • 自己编写各种outofmemory,StackOverflow程序
  • Arthas
  • 常见问题解决思路
  • 实用工具解决一下问题,并总结

四、编译原理知识

  • 编译与反编译
  • Java代码的编译与反编译
  • Java的反编译工具
  • 即使编译器
  • 编译过程

五、操作系统知识

  • Linux的常用命令
  • 进程间通信
  • 进程同步
  • 缓存区溢出
  • 分段和分页
  • 虚拟内存与主存
  • 虚拟内存管理
  • 换页算法

六、数据库知识

  • Mysql执行引擎
  • Mysql执行计划
  • 索引
  • SQL优化
  • 数据库事务和隔离级别
  • 数据库锁
  • 连接
  • 数据库主备搭建
  • binlog
  • redolog
  • 内存数据
  • 分库分表
  • 读写分离
  • 常用的nosql数据库
  • 分别使用数据库锁,NoSql实现分布式锁
  • 性能调优
  • 数据库连接池

七、数据结构与算法知识

  • 简单的数据结构
  • 排序算法
  • 深度优先和广度优先搜索
  • 全排列
  • 贪心算法
  • KMP算法
  • hash算法
  • 海量数据处理
  • 两个栈实现队列,和两个栈实现队列

八、大数据知识

  • Zookeeper
  • Solr,Lucene,ElasticSearch
  • Storm,流式计算,Spark,S4
  • Hadoop,离线计算
  • 分布式日志收集flume,kafka,logstash
  • 数据挖掘,mahout

九、网络安全知识

  • XSS
  • CSRF
  • 注入攻击
  • 文件上传漏洞
  • 加密与解密
  • DDOS攻击
  • SSL,TLS,HTTPS
  • 用openssl签一个证书部署到apache或nginx

架构部分

一、分布式

  • 数据一致性
  • 服务治理
  • 服务降级
  • 分布式事务
  • Dubbo
  • 分布式数据库
  • 分布式文件系统
  • 分布式缓存
  • 限流降级
  • 算法

二、微服务

  • SOA
  • 康戚定律
  • ServiceMesh
  • Docker & Kubernets
  • Spring Boot
  • Spring Cloud

三、高并发

  • 分库分表
  • CDN技术
  • 消息队列

四、监控

  • 监控什么
  • 监控手段
  • 监控数据采集
  • Dapper

五、负载均衡

  • tomcat负载均衡
  • Nginx负载均衡
  • 四层负载均衡
  • 七层负载均衡

六、DNS和CDN

  • DNS原理
  • DNS的设计
  • 数据一致性

扩展部分

云计算

  • IaaS
  • Saas
  • PaaS
  • 虚拟化技术
  • openstack
  • Serverlsess

搜索引擎

  • Solr
  • Lucene
  • Nutch
  • Elasticsearch

权限管理

  • Shiro

区块链

  • 哈希算法
  • Merkle树
  • 公钥密码算法
  • 共识算法
  • Raft协议
  • Paxos算法与Raft算法
  • 拜占庭问题和算法
  • 消息认证码与数字签名
  • 比特币
  • 超级账本- 以太坊

人工智能

  • 数据基础
  • 机器学习
  • 人工神经网络
  • 深度学习
  • 应用场景
  • 常用框架


标题:Java学习大纲
作者:XxwGit
地址:http://xxwgit.cn/solo/articles/2020/01/13/1578901655877.html