Java技术大纲
系统架构:
前端浏览器地址的一个 http 请求到后端整个流程
常用的设计模式,23种
哪些设计模式可以增加系统的可扩展性
如果AB两个系统互相依赖,如何解除依赖?
什么场景应该拆分系统,什么场景应该合并系统?
常用的设计模式 link
如何构建高可用系统?link
性能优化:使用单例、使用Future模式、使用线程池、选择就绪、减少上下文切换、减少锁粒度、数据压缩、结果缓存
Nginx负载均衡
分布式系列
如何设计一个高并发的分布式系统?你会引入哪些开源框架?
缓存
搭建Redis缓存高可用集群
高并发下如何正确优雅的使用缓存
设计缓存要注意什么
本地缓存用过哪些框架?Guava
分布式缓存:缓存一致性、缓存命中率、缓存冗余
分布式数据库
怎样打造一个分布式数据库?什么时候需要分布式数据库、mycat、otter、HBase
网关框架了解过哪些?能为后端服务带来哪些好处?
如何保证消息幂等 link
如何实现分布式Session
如何保证消息的一致性
CDN实现原理
微服务
zookeeper之服务注册与订阅
使用Docker部署微服务
微服务架构--分布式事务解决方案
微服务划分的粒度
微服务的高可用怎么保证的?
什么场景应该拆分系统,什么场景应该合并系统
锁相关
死锁定义;如何避免死锁 link
synchronized和 ReentrantLock 的区别?
java读写锁,读写锁设计主要解决什么问题?
乐观锁,悲观锁,使用场景?
设计一个分布式锁
常见的锁有哪些? link
不用synchronized和lock,实现线程安全的单例模式?link
框架
java
动态代理与Cglib实现的区别 link
看过哪些JDK源码
JAVA并发编程艺术
java8的新特性 link
lambda表达式、Stream API
HotSpot 即时编译器、编译优化 link
CPU缓存,L1,L2,L3和伪共享 link
Java 9,Reactive Streams link
JVM如何加载字节码文件
双亲委派,Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader
内存分配策略、垃圾收集器(G1)、GC算法、GC参数、对象存活的判定
什么情况会出现young GC,什么情况会出现Full GC
怎样判断Full GC是否正常?link
内存泄露原因?如何排查?
OOM 出现的有哪些场景?
JVM 内存结构
熟悉哪些jvm 命令,jstack、jmap、jstat?
jvm调优经验
bio、nio和aio的区别、三种IO的用法与原理
线程有哪些状态? blocked 和 wait 有什么区别? link link
JDK 中有哪几个线程池?拒绝策略? linklink
如何保证线程安全问题?
JUC 常用的类 linklink
ThreadLocal 内部原理?
HashMap,为什么线程不安全link
HashMap 怎么解决碰撞问题?
Concurrenthashmap 是怎么做到线程安全的?
String、StringBuffer与StringBuilder的区别
try catch finally,try里面有return,finally还执行吗?
泛型中K T V E link
Thread 和 Runnable区别?
关键字 volatile、transient、final link
Object 的 equals方法重写了,hashCode 方法必须重写 link link
基础
集合
线程
IO
JVM
其它
spring
为什么要使用Spring,Spring的优缺点有哪些
Spring的IOC容器初始化流程
Spring Bean 的生命周期 link
Spring AOP实现原理
SpringMVC模式
Spring Boot 与 Spring 的区别link
Spring cloud了解过哪些
Spring 5 响应式编程 link
mysql
表级锁和行级锁对比link
事务特性,有哪几种事务隔离级别link
分布式事务,两阶段提交
当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施link
SQL 优化的常见方法有哪些
如何查看执行计划,如何根据执行计划进行SQL优化 link
数据库主备搭建
redis
Redis有哪些数据结构?
使用过Redis分布式锁么,代码怎么写?
假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?
Redis如何做持久化的?
Pipeline有什么好处,为什么要用pipeline?
Redis的同步机制了解么?
为什么要用Redis,Redis有哪些优缺点?Redis如何实现扩容?
10个redis常见问题link
kafka
Kafka的整体架构
netty
Netty的一次请求过程
Netty核心精讲之Reactor线程模型
dubbo
底层原理
支持哪些负载算法?默认哪种?
怎么设置超时时间?
tomcat
Tomcat 调优
Servlet线程安全问题 link
HTTP 协议
OSI模型分为哪几层?
TCP
TCP 和 UDP 的区别?TCP 数据传输过程中怎么做到可靠的?
TCP 三次握手、四次挥手过程
TCP拥塞控制 link
http
Cookie和Session的区别
Http的状态码
HTTP 301 、302有啥区别
HTTP连接池实现原理
Http怎么处理长连接
OS系统
centos7 的内存分配方式和6有啥不同 link
linux
常用的linux命令 link
缓冲区溢出
分段和分页
虚拟内存与主存
Linux 库函数与系统调用的关系与区别 link
进程和线程的区别link
实战能力
有没有处理过线上问题?出现内存泄露,CPU利用率飙高,应用无响应时如何处理?
如果有几十亿的白名单,每天白天需要高并发查询,晚上需要更新一次,如何设计这个功能
双十一电商秒杀系统性能优化实战
电商网站,如何保证一件商品不被超卖
让您做一个电商平台,您如何设置一个在买家下订单后的”第60秒“发短信通知卖家发货,您需要考虑的是 像淘宝一样的大并发量的订单link
其它
一致性Hash算法
看过哪些开源框架的源码
消息中间件是如何实现的,技术难点有哪些
工作案例。怎么提高研发效率。
HttpClient 讲下里面的具体实现,(涉及了哪些东西)
那要你设计一个高性能的 Http ,你会怎么设计?
说出一个空间换时间的场景
怎么防止订单重复提交?
ORM框架用过哪些?
hibernate 和 IBatis 的区别?
抽象能力,乐高模式,怎么提高研发效率
什么情况用接口,什么情况用消息
加密与解密:MD5,SHA1、DES、AES、RSA、DSA