java工程师进阶
大体方向
• 第一梯度:计算机组成原理、数据结构和算法、网络通信原理、操作系统原理;
• 第二梯度:Java基础、JVM内存模型和GC算法、JVM性能调优、JDK工具、设计模式,MySQL(含SQL编程);
• 第三梯度:Spring系列、Mybatis、Spring cloud等主流框架的运用和原理;
• 第四梯度: Redis、RabbitMQ/RocketMQ/Kafka、ZooKeeper,ElasticSearch等数据库或者中间件的运用和原理,nginx,CI/CD,敏捷开发;
• 第五梯度:CAP理论、BASE理论、Paxos和Raft算法等其他分布式理论;
• 第六梯度:容器化、大数据、AI、区块链等等前沿技术理论;
细节问题(基础)
算法和数据结构数组、链表、二叉树、队列、栈的各种操作(性能,场景)
二分查找和各种变种的二分查找
各类排序算法以及复杂度分析(快排、归并、堆)
各类算法题(手写)
理解并可以分析时间和空间复杂度。
动态规划(笔试回回有。。)、贪心。
红黑树、AVL树、Hash树、Tire树、B树、B+树。
图算法(比较少,也就两个最短路径算法理解吧)
计算机网络OSI7层模型(TCP4层)每层的协议
get/post 以及幂等性
http 协议头相关
网络攻击(CSRF、XSS)
TCP/IP三次握手、四次挥手
TCP与UDP比较
DDos攻击
(B)IO/NIO/AIO三者原理,各个语言是怎么实现的
Netty
Linux内核select poll epoll
数据库(最多的还是mysql,Nosql有redis)索引(包括分类及优化方式,失效条件,底层结构)
sql语法(join,union,子查询,having,group by)
引擎对比(InnoDB,MyISAM)
数据库的锁(行锁,表锁,页级锁,意向锁,读锁,写锁,悲观锁,乐观锁,以及加锁的select sql方式)
隔离级别,依次解决的问题(脏读、不可重复读、幻读)
事务的ACID
B树、B+树
优化(explain,慢查询,show profile)
数据库的范式
分库分表,主从复制,读写分离。
Nosql相关(redis和memcached区别之类的,如果你熟悉redis,redis还有一堆要问的)
操作系统:进程通信IPC(几种方式),与线程区别
OS的几种策略(页面置换,进程调度等,每个里面有几种算法)
互斥与死锁相关的
linux常用命令(问的时候都会给具体某一个场景)
Linux内核相关(select、poll、epoll)
编程语言(这里只说Java):把我之后的面经过一遍,Java感觉覆盖的就差不多了,不过下面还是分个类。
Java基础(面向对象、四个特性、重载重写、static和final等等很多东西)
集合(HashMap、ConcurrentHashMap、各种List,最好结合源码看)
并发和多线程(线程池、SYNC和Lock锁机制、线程通信、volatile、ThreadLocal、CyclicBarrier、Atom包、CountDownLatch、AQS、CAS原理等等)
JVM(内存模型、GC垃圾回收,包括分代,GC算法,收集器、类加载和双亲委派、JVM调优,内存泄漏和内存溢出)
IO/NIO相关
反射和代理、异常、Java8相关、序列化
设计模式(常用的,jdk中有的)
Web相关(servlet、cookie/session、Spring)
(框架)
mybatis:
1.mybatis组成:动态sql,Config配置,Mapper配置
2.核心源码分析:Configuration源码解析,SqlSessionFactory源码解析
SqlSession源码解析,SqlSessionManager源码解析
3.手写mybatis框架
Spring MVC:
1.Spring Mvc的使用与流程解析
2.SpringMvc组成:DispatchServlet,HandlerMapping映射器
HandlerAdapter执行适配器,ViewResolver视图,view解析器
HandlerExceptionResolver异常捕捉器
3.Spring MVC的高级技术:使用multipart实现上传下载
异常的统一封装,数据格式转化器,拦截器的使用
4.手写MVC框架
Spring:
1.IOC源码解析:容器的基本实现和组成,装配Bean的方式(xml,注解,javaconfig),BeanFactory源码解析,BeanDefinition源码分析
Bean生命周期,依赖实现
2.AOP源码解析:面向切面的基础(AOP的基石动态代理),
ProxyFactory源码解析,AopProxy源码解析(JdkDynamicAopProxy)
Cglib2AopProxy,拦截与织入(advice源码分析,Interceptor源码分析)
Transaction事务分析(事务的基础,spring对事务的支持,源码分析)
SpringCache框架源码分析
Mysql:
1.Mysql底层数据结构
2.执行计划深入分析
3.Mysql索引优化详解
4.慢查询分析与sql优化
并发编程:
1.线程基础
2.原子操作类和CAS
3.Lock,Condition和显示锁
4.AbstractQueuedSynchronizer分析
5.并发工具类和并发容器
6.线程池和Executor框架
7.实现原理和Java内存模型
8.线程安全
9.并发项目实战
JVM性能调优
1.性能优化:如何衡量性能标准,性能优化是什么,性能优化后效果
2.Jvm内存管理机制:内存区域与内存溢出异常,jvm管理机制,jvm执行子系统
程序编译与代码优化,实战调优案例与解决方法
Netty框架
1.熟悉Netty内容
2.I/O体系与入门
3.TCP粘包拆包问题的解决之道
4.Netty多协议开发和应用
5.Netty源码解析
高并发场景分布式解决方案
1.分布式主键生成方案
2.Session跨域共享实战
3.分布式事务解决方案实战
4.分布式锁解决方案
5.分布式单点登陆
6.分布式调度任务
7.分布式配置中心
FastDfs分布式文件存储实战
1.文件存储
2.文件同步
3.文件查询
4.分布式部署
Mysql高性能存储
1.Mysql主从复制,读写分离,高可用
2.Mysql+Keepalived实现双主高可用
3.Mysql分库分表高性能
4.Mycat简介及用途
5.基于Mycat实现Mysql读写分离
6.Mycat数据库切分
7.全局表,ER表,分片机制
高性能缓存
1.缓存雪崩解决方案
2.缓存粒度控制
3.缓存击穿
4.热点缓存重建
5.缓存同步
6.Spring-Cache开发
7.Redis客户端
8.Redis持久化
9.哨兵核心机制
10.高可用集群
11.原子性
12.应用场景与设计分析
消息队列
1.kafka(
1.基于ZooKeeper搭建高可用集群
2.kafka消息处理过程解析
3.基于java语言实现kafka生产者与消费者实例
4.kafka副本机制及选举原理窥探
5.使用kafka实现日志实时上报
)
分布式架构思维
1.大型互联网架构演进过程
2.架构师应具备的分布式知识
3.主流分布式架构设计详解
Zookeeper
1.Zookeeper基础(
1.会话,节点属性,节点类型,版本,监听器机制,安全权限,单机部署,zk的命令
2.原生客户按,ZKclient,curotor
)
2.Zookeeper进阶(
1.zk集群部署安装
2.客户端连接ZK集群以及原理
3.ZK的注意事项
)
3.使用举例(配置中心,分布式锁,集群选举,命名服务)
Nginx
1.Nginx模块
2.Nginx工作原理与安装配置
3.Nginx常用命令管理及升级
4.Nginx配置文件精讲
5.Nginx多站点配置
6.Nginx配置优化及深入剖析
7.Nginx日志分析及脚本编写
8.Nginx日志切割案例讲解
9.Nginx构建安全HTTPS架构
10.Nginx运维及故障解决
11.Nginx+Keepalived集群架构
12.Nginx+KeepAlived双主架构案例
微服务
1.Docker虚拟化技术(Docker介绍安装与使用)
2.Docker组成
3.Docker Compose部署脚本
4.Docker服务编排
5.Docker Redis分布式集群部署
6.Docker File构建
7.通过Maven插件打包Docker镜像
8.Docker部署及运行应用程序
9.Kubernetes编排
10.基于Docker构建Mysql集群实战
11.高可用SpringCloud微服务与Docker集成实现动态扩容实战
12.Docker构建Mysql集群
13.高可用SpringCloud微服务与Docker集成实现动态扩容实战
SpringCloud
1.Ribbon客户端负载均衡原理与算法详解,与服务端负载均衡区别
2.Feign声明式服务调用方式实现
3.Hystrix服务熔断及服务降级实战
4.Eureka注册中心及源码分析
5.Config配置中心与svn,git快速集成
6.Sleuth调用链路跟踪
7.BUS消息总线技术
8.Stream消息驱动阿微服务
SpringBoot
1.SpringBoot与微服务的联系
2.SpringBoot核心组件刨析
3.快速集成Dubbo
4.快速集成redis
5.构建Swagger插件实现API管理及接口测试体系
Dubbo
1.dubbo简介与入门
2.dubbo管理中心及监控系统安装部署
3.领域驱动之如何正确划分DUBBO分布式服务
4.通讯协议TCP,UDP,HTTP分析
5.Dubbo负载均衡机制探析
6.如何完成Dubbo服务只订阅及只注册模式
7.架构师必备技术之如何设计Dubbo服务接口
8.Dubbo设计原理及源码分析
9.Dubbo容错机制及高扩展性分析
10.Dubbo服务与Docker虚拟化技术集成实战
GIT
1.git基本工作原理,与SVN对比,基本运作流程
2.git常用操作及问题处理,工程初始化及克隆,文件提交,分支与常用标签应用
远程仓库管理,合并与冲突解决
Maven
1.重要指令
2.私服-Nexus:Nexus服务搭建,Nexus仓库管理,Nexus使用,上传,配置
Sonar
1.静态代码检查,代码更健壮
2.代码走查
Jenkins
1.Jenkins服务部署
2.Jenkins持续集成