【Java编程必考点】Java并发编程+集合+并发容器+JVM
模块一:Java并发编程
- 线程的生命周期与状态流转
- 线程的通信与协作:sleep、wait、notify、yield、join关系与区别
- 深入Synchronized的实现原理与源码分析
- 深入ReentrantLock的实现原理和源码分析
- 构建锁与同步组件的基石AQS:深入AQS的实现原理与源码分析
- Volatile是用于解决什么问题,详解实现原理
- 深入CAS、ThreadLocal的底层实现机制,以及对应的使用风险
- 详解线程池的核心参数,描述核心流程、应该怎么正确使用
模块二:Java集合类&并发容器
- 详解ArrayList、LinkedList、Vector、CopyOnWriteArrayList的优劣势
- ArrayList、LinkedList、Vector、CopyOnWriteArrayList的源码分析
- 详解HashMap、TreeMap、LinkedHashMap、ConcurrentHashMap的优劣势
- 深入HashMap的底层实现,以及HashMap必考面试题解答
- 深入ConcurrentHashMap的底层实现,以及ConcurrentHashMap必考面试题解答
模块三:JVM虚拟机
-
JVM类加载器结构与加载流程详解
-
JVM内存模型、堆结构、虚拟机栈详解
-
JVM标记清除、标记整理、复制等算法详解
-
详解JVM 新生代集器优劣势比较
-
详解JVM 老年代收集器优劣势比较
-
详解JVM性能优化:调优思路、调优参数、调优工具等
【Java综合必考点】网络与操作系统+数据结构与算法+数据库
模块四:数据结构与算法
- 数据结构与算法的面试必考点介绍
- 详解二叉树、二叉搜索树、AVL树、红黑树
- 详解红黑树什么时候会出现左旋与右旋
- 二叉树、红黑树、B-、B+树的优缺点与应用场景
- 详解分治算法、动态规划、贪心算法的核心思路
- 常用的排序算法有哪些,以及各自的时间复杂度
模块五:计算机网络
- 网络OSI七层架构(TCP4层)的应用与区别
- 详细描述TCP三次握手、四次挥手全过程
- 详解http、https、SSL、TLS的区别
- 详解SSL的实现原理,以及非对称加密过程
- 详解CSRF、XSS、SQL注入、CC攻击、Ddos网络攻击与防范
模块六:Linux操作系统
- 详解同步、异步、阻塞、非阻塞的区别
- 详解Linux的内核组成、内部结构等
- Linux有多少种IO模型
- 详解阻塞IO、IO多路复用、异步IO等的优劣势
- 详解平时开发最常用的Linux命令
模块七:MySQL数据库
- MySQL面试必考点介绍
- 详解MySQL索引类别,以及MyISAM与InnoDB的索引实现
- 详解MySQL索引的数据结构实现
- 详解事务的ACID、脏读、幻读、事务的隔离级别
- 数据库的锁:行级锁、表锁、乐观锁、悲观锁的实现原理
- MySQL数据库性能优化:表、索引、SQL等
【分布式架构必考点】 RPC+微服务+分布式锁+分布式事务
模块八:分布式架构设计
- 分布式Session的解决方案的优劣势比较
- 详解分布式锁主要解决什么问题
- 详解Redis、数据库、Zookeeper实现分布式锁的优劣势
- 为什么需要分布式事务,有哪些解决方案
- 分布式事务的主流解决方案是什么,详解实现机制
模块九:分布式缓存
- 详解Redis和Memcached的优劣势与应用场景
- 详解常用的Redis数据结构的应用场景
- 详解Redis的持久化方式有哪些,实现机制的比较
- Redis是怎样实现高并发与高可用的架构,怎么解决
- 缓存经典问题:缓存穿透、缓存击穿、缓存雪崩
- 如何保证Redis缓存和MySQL双写的数据一致性
模块十:分布式服务化
- 完整描述RPC的通信全过程
- 详解RPC的核心架构设计
- 详解Dubbo和核心组件与核心架构
- Dubbo常见的面试考点解答
- 详解Spring Cloud的架构设计
- 详解Eureka、Ribbon、Feign的、Hystrix的实现机制
【高并发架构必考点】消息中间件+大数据+秒杀
模块十一:消息中间件
- 详解消息队列的核心成员
- 详解消息队列的传输模式、协议、发送方式
- RabbitMQ、Kafka、RocketMQ的优劣势
- RabbitMQ、Kafka、RocketMQ各自的架构设计
- 消息队列难点详解:如何解决消息重复的问题
模块十二:高并发架构设计
- 数据垂直拆分与水平拆分的原则
- 如何做分库分表,描述对应的拆解步骤
- 分布式全局id生成方案有哪些,各自的优劣势比较
- 详解MySQL的读写分离与主从同步数据一致性
- 详解经典的秒杀的架构设计与核心思路