Java学习路线

导读:本篇文章讲解 Java学习路线,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

概述

  1. 可以按时间轴大致分为以下几大块。
    • Java基础
    • Java高级(重点)
    • JavaWeb
    • 研发工具
    • 主流框架
    • 分布式、微服务、并行架构
    • 运维知识
    • DevOps
    • 大数据技术
    • 项目总结
    • 大厂面试题
    • 编程基础扩展
    • 成神之路
    • 平稳降落
  2. 具体阶段分解

Java基础

  1. 基础语法
  2. 面向对象
  • 封装
  • 继承
  • 多态
  1. 数组
  2. JavaApi
  • 如何调用
  • 如何查看API文档
  1. 异常处理
  2. 集合
  3. 泛型
  4. I/O
  5. 反射
  6. 注解
  7. 网络通信

Java高级(重点)

Java多线程/高并发

  1. 并发基础
  • 互斥同步
  • 非阻塞同步
  • 指令重排
  • Synchronized
  • Volatile
  1. 线程
  • Thread
  • Runnable
  • 自旋锁
  • 偏向锁
  • 可重入锁
  1. 线程池
  2. 并发容器
  3. JUC
  • executor
  • collections
  • locks
  • atomic(原子类)
  • 并发工具类tools(CountDownLatch,Exchanger,ThreadLocal,CycliBarrier)

设计模式

  1. 组件协作
  • 模板方法(常用)
  • 策略模式(常用)
  • 观察者模式(常用)
  1. 对象创建
  • 工厂方法(常用)
  • 抽象工厂(常用)
  • 构建器模式
  • 原型模式
  1. 单一职责
  • 装饰器模式(常用)
  • 桥模式(常用)
  1. 性能
  • 单例(常用)
  • 享元模式(常用)
  1. 数据结构
  • 职责链模式(常用)
  • 迭代器模式
  • 组合模式
  1. 接口隔离
  • 代理模式(常用)
  • 适配器模式(常用)
  • 门面模式
  • 中介者模式
  1. 状态
  • 状态模式
  • 备忘录模式
  1. 行为变化
  • 命令模式(常用)
  • 访问者模式
  1. 领域
  • 解析器模式

JVM虚拟机

  1. JVM体系
  2. 类加载机制
  3. 双亲委派机制/沙箱安全机制
  4. JMM(JVM内存模型 )
  5. 字节码执行机制
  6. GC垃圾回收
  7. JVM调优
  8. JVM性能监控和故障定位

计算机网络

  1. ARP协议
  2. IP协议、ICMP协议
  3. TCP、UDP协议
  4. DNS/HTTP/HTTPS协议
  5. Session/Cookie

操作系统

  1. 进程、线程
  2. 并发、锁
  3. 内存管理和调度
  4. I/O原理

JavaWeb

前端(后端角度)

前端基础

  1. 三大件
  • HTML
  • JavaScript
  • CSS
  1. 基础库
  • Jquery
  • Ajax

模板框架

  1. JSP/JSTL:很老的技术,基本了解即可
  2. Thymleaf:后端模板引擎
  3. FreeMarker:后端模板引擎

组件化框架(可以弱化)

  1. Node
  2. Vue
  3. React
  4. Angular
  5. Bootstrap

后端

  1. Tomcat
  2. Servlet
  3. JSP:了解即可

研发工具

  1. 集成开发环境
  • Eclipse
  • Intellij IDEA
  1. Linux系统
  • 常用命令
  • Shell脚本
  1. 项目管理/构建工具
  • Maven
  • Gradle
  1. 代码管理工具
  • Git/GitHub
  • SVN

主流框架

Linux(操作系统,必学)

Nginx(做反向代理的Web服务器)

SSM(重点)

  1. Spring(轻量级容器框架)
  • IOC
  • AOP
  1. SpringMVC(分层的Web开发框架)
  2. MyBatis(持久层框架)

数据库

  1. Redis(重点)
  2. Mysql(重点)
  • SQL语句的书写
  • SQL语句的优化
  • 事务、隔离级别
  • 索引
  1. Oracle
  2. ORM层框架
  • Mybatis
  • Hibernate
  • JPA
  1. 连接池
  • Druid
  • HikariCP
  • C3P0
  1. 分库分表
  • MyCat
  • Sharding-JDBC
  • sharding-Sphere

其他框架

  1. WebService(即SOA(面向服务的架构)的具体解决方案)
  2. Activity(工作流框架/引擎)
  3. Shiro(安全框架)
  4. Spring Security(安全框架)
  5. JPA(持久化,数据持久化到数据库)
  6. SpringData(持久层的通用解决方案)

分布式、微服务、并行架构

Netty(必学,许多框架的基础)

Dubbo(RPC框架,底层是Netty)

FastDFS(分布式文件系统)

虚拟化/容器化

容器技术

  1. Docker(应用容器引擎)
  2. 容器编排技术(容器的统一管理)
  • K8S(Kubernetes)
  • Swarm

Spring家族(重要)

SpringBoot

  1. 自动配置,开箱即用
  2. 整合Web
  3. 整合数据库(事务问题)
  4. 整合权限
  • Shiro
  • Spring Security
  1. 整合各种中间件
  • Redis、MQ、RPC框架、NIO框架…

SpringCloud

  1. Nacos(阿里巴巴,服务发现,配置,管理)
  2. Seata(阿里巴巴,分布式事务的中间件)
  3. Sentinel(阿里巴巴,流控,熔断,系统负载均衡)
  4. GateWay(网关,限流,日志,监控,鉴权)
  5. OpenFeign(服务间调用)

搜索引擎

  1. ElasticSearch
  2. Solr

中间件

MyCat(数据库中间件分库分表)

消息中间件

  1. ActiveMQ
  2. RocketMQ
  3. RabbitMQ
  4. Kafka

缓存

  1. Redis
  • 5大基础数据类型
  • 事务
  • 管道
  • 持久化
  • 集群

RPC框架

  1. Dubbo
  2. gRPC
  3. Thrift
  4. SpringCloud
  5. Netty

日志分析与监控(ELK)

  1. ElasticSearch(搜索,存储数据)
  2. LogStash(分析日志)
  3. Kibana(日志分析信息可视化)

zookeeper(一致性服务:比如 配置维护,域名维护,分布式同步)

分布式/微服务

服务发现/注册

  1. Eureka
  2. Consul
  3. Zookeeper
  4. Nacos

网关

  1. Zuul
  2. Gateway

服务调用(负载均衡)

  1. Ribbon
  2. Feign

熔断/降级

  1. Hystrix

配置中心

  1. config
  2. Appllo
  3. Nacos

认证和鉴权

  1. Spring Security
  2. OAuth2
  3. SSO单点登录

分布式事务

  1. JTA接口
  • Atomikos组件
  1. 2PC、3PC
  2. XA模式
  3. TCC模式
  • tcc-transaction
  • ByteTCC
  • EasyTransaction
  • Seata
  1. SAGA模式
  • ServiceComb
  • Seata
  1. LCN模式
  • tx-lcn

任务调度

  1. Quartz
  2. Elastic-Job

链路追踪和监控

  1. Zipkin
  2. Sleuth
  3. Skywalking

日志分析与监控

  1. ELK
  • ElasticSearch
  • LogStash
  • Kibana

运维知识

  1. Web服务器
  • Nginx
  1. 应用服务器
  • Tomcat
  • Jetty
  • Undertow
  1. CDN加速
  2. 持续集成/持续部署
  • Jenkins
  1. 代码质量检查
  • sonar
  1. 日志收集和分析
  • ELK

DevOps

开发运维一体化,自动化部署管理项目,解决CI/CD

  1. K8S(让部署容器化的应用简单高效)
  2. 普罗米修斯(prometheus)【系统监控和报警】
  3. Jenkins(监控持续的工作【部署、集成、交付】)
  4. Harbor(容器的镜像仓库)
  5. GitLab(代码托管平台)
  6. Sonarqube(代码质量检查)

大数据技术(可以弱化)

  1. Hadoop
  2. Hive
  3. Impals
  4. spark
  5. flink

项目总结

  1. 所学技术在项目实践中融合贯通

大厂面试题

  1. 考察自己知识的掌握程度

编程基础扩展

  1. 编译原理
  2. 离散数学
  3. 数值分析
  4. 计算机组成原理
  5. 汇编(弱化)

成神之路

  1. 徒手撕源码
  2. 内核研究
  3. 光脚造轮子
  4. 闭着眼睛深度调优
  5. 吊打面试官

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100393.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!