一 java 面试军火库
序号 | 知识体系 | 备注 |
---|---|---|
1 | JVM | 类的加载过程 双亲委派 类的加载器 JVM内存模型 堆内存的分析 方法区和元空间 |
2 | GC | 回收期:G1和CMS 回收算法 垃圾判定(程序计数法和可达性分析算法) GC在堆内存的工作过程 |
3 | 基本功 | OOP(面向对象) 关键字(final、static、this、super等) 异常、常用类(String) |
4 | 集合 | ArrayList(初始化、扩容、1.7和1.8) HashMap(底层、冲突、扩容、原理、1.7和1.8) ConcurrentHashMap(安全、1.7和1.8) |
5 | 线程 | 创建(4种) 线程交互(wait\notify) 生命周期 线程池(七大参数、运行过程) |
6 | 锁 | synchronized(用法、原理、优化) 对象锁的升级过程 Lock(使用、公平非公平) JUC(Lock、ConcurrentHashMap) CAS、ABA ThreadLocal(线程副本、线程变量) volitatle(特性、原子类) 锁消除、锁粗化、自旋、可重入 |
7 | 数据库-Mysql | 存储引擎 事务(ACID) 脏读、幻读、不可重复读 索引(聚簇、覆盖、联合索引-最佳左匹配、B+Tree) SQL优化(定位-分析-解决) 函数、存储过程 SQL编程题(牛客、力扣) |
8 | 框架 | Spring(IOC和DI、AOP、代理模式、循环依赖-三级缓存、Bean的生命周期、事务传播行为、设计模式) SpringfMVC(运行原理、全局异常、RestFul、注解) SpringBoot(自动装配原理、配置文件、日志-logback) Mybatis($和#、resultType和resultMap、动态SQL、缓存策略、级联和懒加载) |
9 | 架构 | 架构演进 微服务 SpringCloud常用组件 CAP和Base |
10 | Redis | 数据类型、持久化、集群、雪崩、击穿、穿透、倾斜 过期策略、淘汰机制 分布式锁:RedLock |
11 | MQ | 主流MQ对比 交换器(4种) 死信、延迟消息 消息可靠性 消息幂等性-重复消费 |
12 | 运维 | Linux、常用命令 Docker(命令) 线上bug排查 |
13 | 杂七杂八 | 分布式事务-Seata 数据库中间件-Mycat 任务调度-定时任务 Nginx-负载均衡策略 Dubbo-RPC Zookeeper-注册中心 遇到的印象比较深刻的问题 擅长的技术 最近在学习 DDD领域驱动设计 文档、画图、数据库建模 Git、Maven ElasticSearch(1.存储过程 2.倒排索引 3.项目应用) Https |
14 | 前端 | Html、Css、Js Vue全家桶(Vue-cli、Vue.js、Vue-router、VueX、Axios) |
15 | 测试 | 单元测试、接口测试、性能测试 |
二、微服务项目技术栈
SpringCloud+Alibaba组件微服务解决方案
序号 | 名称 | 技术 |
---|---|---|
1 | 注册中心 | Nacos-阿里巴巴 |
2 | 配置中心 | Nacos-阿里巴巴 |
3 | 服务调用 | OpenFeign |
4 | 网关中心 | Gateway |
5 | 流量降级 | Sentinel-阿里巴巴 |
6 | 链路跟踪 | Sleuth+Zipkin |
7 | 分布式锁 | Redisson中RLock |
8 | 分布式事务 | Seata-阿里巴巴 |
9 | 资源存储 | Oss-阿里巴巴 |
其他技术:
序号 | 名称 | 技术 |
---|---|---|
1 | 版本管理 | Git+Gitee |
2 | 项目管理 | Maven |
3 | 框架 | Spring、SpringMVC、Mybatis(Mybatis-plus)、SpringBoot |
4 | 数据库建模工具 | PdMan |
5 | 测试工具 | Swagger、Jmeter、ApiPost |
6 | 数据交互 | Json |
7 | 网络请求 | HttpURLConnection |
8 | 加解密 | RSA、AES |
9 | 第三方 | Oss、SMS、支付、文本审核、图片审核、地图 |
10 | 线程应用 | 线程池 |
11 | 设计模式 | 策略模式、单例模式 |
12 | DDD领域驱动 | DDD架构 |
13 | 请求协议 | Https |
Nginx-搭建Tomcat集群
Nacos集群
Redis集群
Mycat-Mysql集群
RabbitMQ集群