前言:本Java服务端菜鸟目前需要加强的五大方向,Leetcode算法,多线程高并发和NIO,Mysql性能优化,微服务架构设计,JVM优化思路,常见问题解决/设计方案,框架源码原理和开源大项目参与。
Java架构师是一个既需要掌控整体又需要洞悉局部瓶颈并依据具体的业务场景给出解决方案的团队领导型人物。一个Java架构师得需要足够的想像力,能把各种目标需求进行不同维度的扩展,为目标客户提供更为全面的需求清单。
Java架构师在软件开发的整个过程中起着很重要的作用。说的详细一些,架构师就是确认和评估系统需求,给出开发规范,搭建系统实现的核心构架,并澄清技术细节、扫清主要难点的技术人员。主要着眼于系统的“技术实现”。
Java架构师的主要任务不是从事具体的软件程序的编写,而是从事更高层次的开发构架工作。他必须对开发技术非常了解,并且需要有良好的组织管理能力。可以这样说,一个架构师工作的好坏决定了整个软件开发项目的成败。
一、LeetCode算法题
LeetCode常用算法和大厂历年真题
二、多线程并发编程和NIO
线程安全和线程池 同步异步 死锁 reentrantLock锁 读写锁 可重入锁
Lock接口和个Synchronized区别
volatile关键字的作用
nio 阻塞和非阻塞
Netty异步高性能的通信框架
三、Mysql性能优化和高可用架构
Mysql调优 索引和自增长字段跳跃
主从同步 分库分表
ElasticSearch搜索引擎
四、微服务相关框架
Nginx负载均衡
RabbitMQ或Kafka消息队列中间件
微服务框架SpringCloud
Dubbo分布式框架(netty作为基础通信组件)
Zookeeper 分布式系统锁服务或Redis分布锁
Docker虚拟化linux容器
Hadoop和Spark大数据存储和分析
Flink大数据流处理工具
五、JVM底层调优和设计模式
JVM调优相关
Gof:装饰者模式,动态代理模式、生产者和消费者、观察者模式
银行家算法
六、综合能力:微服务架构设计、海量数据库集群搭建、秒杀系统设计、数据治理等等
推荐两个github上的学习链接,总结的炒鸡棒。(我决定以后博客只记录工作技术总结和刷的算法题,然后看前辈们的总结即可)
互联网 Java 工程师进阶知识完全扫盲 :涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识
Java工程师面试复习指南:涵盖大部分Java程序员所需要掌握的核心知识,整合了互联网上的很多优质Java技术文章,力求打造为最完整最实用的Java开发者学习指南。