Java架构师 2021大厂面试必备资料

1,182 阅读10分钟

白菜Java自习室 涵盖核心知识

我相信各位小伙伴们或多或少都对 Java 的相关岗位的面试都有一定的了解,知道面试官一定会对某个知识点进行一系列的穷追猛打,直到你默默不语……

基础篇

-------- Java工程师的进阶之路 基础篇(一)

  1. Java语言主要特点
  2. Java语言和C++语言的区别
  3. JDK、JRE、JVM之间的关系
  4. Java应用程序与小程序之间的区别
  5. Java面向对象编程三大特性: 封装 继承 多态

-------- Java工程师的进阶之路 基础篇(二)

  1. 字符型常量和字符串常量的区别?
  2. Java中的String为什么不可变?
  3. String、StringBuffer、StringBuilder的区别是什么?
  4. Java的自动装箱与拆箱的实现原理?
  5. Java的重载和重写的区别是什么?
  6. Java的接口和抽象类的区别是什么?
  7. Java的对象实体与对象引用有何不同?
  8. Java的对象相等与引用相等有何不同?
  9. Java的成员变量与局部变量的区别有哪些?
  10. Java的静态方法和实例方法有何不同?

-------- Java工程师的进阶之路 基础篇(三)

  1. Java中的构造方法的作用和特性
  2. Java中的 final 关键字
  3. Java中的 static 关键字
  4. Java中的 volatile 关键字
  5. Java中的 transient 关键字
  6. Java中的 synchronized 关键字
  7. Java中的异常处理和类层次结构
  8. Java中的hashcode()方法和equals()方法
  9. Java中IO流以及BIO,NIO,AIO的区别
  10. 线程和进程的基本概念以及之间的关系

容器篇

-------- Java工程师的进阶之路 容器篇(一)

  1. Java容器分类图
  2. Collection接口(ArrayList、LinkedList、Vector、Stack)
  3. Set接口(HashSet、TreeSet、LinkedHashSet、EnumSet)
  4. Map接口(HashMap、HashTable、TreeMap、WeakHashMap)
  5. Iterator接口

-------- Java工程师的进阶之路 容器篇(二)

Java容器——List详解

  1. List 接口
  2. AbstractList(Iterator 实现、for-each 删除元素、subList 实现)
  3. ArrayList(MAX_ARRAY_SIZE、ArrayList 扩容、batchRemove)
  4. LinkedList(存储结构与迭代器)
  5. CopyOnWriteArrayList

-------- Java工程师的进阶之路 容器篇(三)

Java容器——Map详解

  1. AbstractMap(EntrySet、键视图和值视图)
  2. HashMap(HashMap 实现原理、resize 实现、迭代器构建、Java 1.8 性能改进)
  3. treeMap(TreeMap 实现原理、红黑树)
  4. ConcurrentHashMap(实现原理)

并发篇

-------- Java工程师的进阶之路 并发篇(一)

Java并发-线程池

  1. 线程池的优势
  2. 线程池的主要参数
  3. 线程池的执行流程
  4. 线程池的阻塞队列
  5. 线程池的饱和策略
  6. 线程池的配置选择
  7. Java提供的线程池
  8. execute()和submit()方法

-------- Java工程师的进阶之路 并发篇(二)

Java并发-Executor

  1. Executor框架的结构
  2. Executor类和接口示意图
  3. Executor框架的使用示意图
  4. ThreadPoolExecutor
  5. ScheduledThreadPoolExecutor
  6. Future接口
  7. Runnable接口和Callable接口

-------- Java工程师的进阶之路 并发篇(三)

Java并发-锁

  1. 乐观锁 VS 悲观锁(CAS自旋、AtomicInteger)
  2. 自旋锁 VS 适应性自旋锁
  3. 无锁 VS 偏向锁 VS 轻量级锁 VS 重量级锁(synchronized、无锁、偏向锁、轻量级锁、重量级锁)
  4. 公平锁 VS 非公平锁(公平锁、非公平锁、ReentrantLock)
  5. 可重入锁 VS 非可重入锁(可重入锁、非可重入锁、ReentrantLock和synchronized)
  6. 独享锁 VS 共享锁(ReentrantReadWriteLock、WriteLock、ReadLock)

-------- Java工程师的进阶之路 并发篇(四)

Java并发-并发工具

  1. AQS(State、CLH队列(FIFO))
  2. CountDownLatch:等待其他线程完成操作
  3. CyclicBarrier:同步屏障
  4. Semaphore:控制并发线程数
  5. Exchanger:线程间交换数据

-------- Java工程师的进阶之路 并发篇(五)

Java并发-并发容器

  1. Threadlocal(ThreadLocal简单使用、ThreadLocal原理、ThreadLocal应用场景)
  2. ConcurrentHashMap:并发版HashMap
  3. CopyOnWriteArrayList:并发版ArrayList
  4. CopyOnWriteArraySet:并发Set
  5. ConcurrentLinkedQueue:并发队列(基于链表)
  6. ConcurrentLinkedDeque:并发队列(基于双向链表)
  7. ConcurrentSkipListMap:基于跳表的并发Map
  8. ConcurrentSkipListSet:基于跳表的并发Set
  9. ArrayBlockingQueue:阻塞队列(基于数组)
  10. LinkedBlockingQueue:阻塞队列(基于链表)
  11. LinkedBlockingDeque:阻塞队列(基于双向链表)
  12. PriorityBlockingQueue:线程安全的优先队列
  13. SynchronousQueue:读写成对的队列
  14. LinkedTransferQueue:基于链表的数据交换队列
  15. DelayQueue:延时队列

JVM篇

-------- Java工程师的进阶之路 JVM篇(一)

  1. JVM是什么
  2. JVM、JRE、JDK三者的关系
  3. Java运行时数据区域(程序计数器、虚拟机栈、本地方法栈、Java 堆、方法区、运行时常量池、直接内存)
  4. HotSpot 虚拟机对象探秘(对象的创建、对象的内存布局、对象的访问定位)

-------- Java工程师的进阶之路 JVM篇(二)

  1. Java 内存模型
  2. Java 内存分配
  3. Java 垃圾回收(判断对象已死、垃圾回收算法、垃圾回收器)
  4. JVM 优化

-------- Java工程师的进阶之路 JVM篇(三)

类加载机制

  1. 类的生命周期(七个阶段)
  2. 类的加载过程(加载、连接、初始化)
  3. 类的加载器(双亲委派模型、用户自定义的类加载器、类加载机制与接口)

MySQL篇

-------- Java工程师的进阶之路 MySQL篇(一)

  1. 什么是MySQL?
  2. MySQL存储引擎
  3. 字符集及校对规则
  4. MySQL数据索引
  5. MySQL事务机制
  6. MySQL日志模块
  7. SQL语句在MySQL中如何执行?

-------- Java工程师的进阶之路 MySQL篇(二)

  1. MySQL锁机制
  2. MySQL大表优化
  3. 分库分表代理架构
  4. 分库分表ID主键

Mybatis篇

-------- Java工程师的进阶之路 Mybatis篇(一)

  1. Mybatis 简介
  2. MyBatis 框架设计(接口层、数据处理层、框架支撑层)
  3. MyBatis 主要构件及其相互关系
  4. MyBatis 工作原理
  5. MyBatis 和 Hibernate 比较

-------- Java工程师的进阶之路 Mybatis篇(二)

  1. Mybatis 的SqlSession详解(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession)
  2. MyBatis 中 #{} 和 ${} 的区别
  3. Mybatis 的二级缓存原理(一级缓存、二级缓存)
  4. Mybatis 的批处理机制详解(执行器类型、选择更优的批处理方案)

Redis篇

-------- Java工程师的进阶之路 Redis篇(一)

  1. Redis 简介
  2. Redis 基本数据结构(string、list、hash、set、zset)
  3. Redis 的线程模型
  4. Redis 设置过期时间(定期删除、惰性删除)
  5. Redis 内存淘汰机制
  6. Redis 持久化机制(RDB、AOF)
  7. Redis 事务机制
  8. Redis 发布/订阅功能
  9. Redis 集群模式(主从复制、Redis Sentinel 哨兵、Redis 集群架构)

-------- Java工程师的进阶之路 Redis篇(二)

  1. Redis 跳跃表(跳跃表简介、跳跃表原理)
  2. Redis 分布式锁(分布式锁简介、Redis 分布式锁、Redlock 分布式锁)
  3. Redis 布隆过滤器(布隆过滤器简介、布隆过滤器原理、布隆过滤器使用)
  4. Redis HyperLogLog(HyperLogLog 简介、HyperLogLog 原理)

Nginx篇

-------- Java工程师的进阶之路 Nginx篇(一)

  1. Nginx 简介
  2. 正向代理和反向代理
  3. Nginx 特点
  4. Nginx 工作原理
  5. Nginx处理HTTP请求流程
  6. Nginx 进程模型(master与worker、nginx处理高并发)

-------- Java工程师的进阶之路 Nginx篇(二)

  1. Nginx 模块功能(全局块、events块、http块、server块、location块)
  2. Nginx 配置解析
  3. Nginx 配置HTTPS

RocketMQ篇

-------- Java工程师的进阶之路 RocketMQ篇(一)

  1. 消息中间件简介
  2. 消息队列需要解决哪些问题?
  3. RocketMQ 入门实例(RocketMQ 生产者、RocketMQ 消费者)

-------- Java工程师的进阶之路 RocketMQ篇(二)

  1. RocketMQ 简介
  2. RocketMQ 架构图
  3. RocketMQ 名词解释
  4. RocketMQ Topic和Queue
  5. RocketMQ 消费模型
  6. RocketMQ 网络模型
  7. RocketMQ 存储模型
  8. RocketMQ 高可用性
  9. RocketMQ 定时/延时消息
  10. RocketMQ 事务消息

ElasticSearch篇

-------- Java工程师的进阶之路 ElasticSearch篇(一)

  1. ElasticSearch 简介
  2. ElasticSearch 基本概念
  3. Elasticsearch 倒排索引
  4. Elasticsearch 分词原理
  5. Elasticsearch 数据类型

-------- Java工程师的进阶之路 ElasticSearch篇(二)

  1. ElasticSearch 索引动态更新
  2. ElasticSearch 文档的更新删除
  3. Elasticsearch 数据读写原理
  4. ElasticSearch 分布式集群原理
  5. ElasticSearch 实际使用的问题(分片的设定、数据近实时问题、深分页问题)

Zookeeper篇

-------- Java工程师的进阶之路 Zookeeper篇(一)

  1. Zookeeper 简介
  2. Zookeeper 结构(文件系统、通知机制)
  3. Zookeeper 功能(命名服务、配置管理、系统解耦、集群管理、分布式锁、队列管理)
  4. Zookeeper 集群(分布式集群、数据复制的优点、数据一致性与paxos算法)

-------- Java工程师的进阶之路 Zookeeper篇(二)

  1. Zookeeper 系统模型
  2. Zookeeper 工作协议(CAP定理、原子广播协议)
  3. Zookeeper 选主流程(恢复模式)
  4. Zookeeper 同步流程(广播模式)
  5. Zookeeper 工作流程(Leader和Follower)

设计模式篇

-------- Java工程师的进阶之路 设计模式篇(一)

  1. 设计模式简介
  2. 设计模式的概念
  3. GoF的23种设计模式
  4. 面向对象设计原则(开闭原则、里氏替换原则、依赖倒置原则、单一职责原则、接口隔离原则、迪米特法则、合成复用原则)

-------- Java工程师的进阶之路 设计模式篇(二)

创建型模式

  1. 工厂方法模式(亦称: 虚拟构造函数、Virtual Constructor、Factory Method)
  2. 抽象工厂模式(亦称: Abstract Factory)
  3. 建造者模式(亦称: 生成器模式、Builder)
  4. 原型模式(亦称: 克隆、Clone、Prototype)
  5. 单例模式(亦称: 单件模式、Singleton)

-------- Java工程师的进阶之路 设计模式篇(三)

结构型模式

  1. 适配器模式(亦称: 封装器模式、Wrapper、Adapter)
  2. 桥接模式(亦称: Bridge)
  3. 组合模式(亦称: 对象树、Object Tree、Composite)
  4. 装饰模式(亦称: 装饰者模式、装饰器模式、Wrapper、Decorator)
  5. 外观模式(亦称: 门面模式、Facade)
  6. 享元模式(亦称: 缓存、Cache、Flyweight)
  7. 代理模式(亦称: Proxy)

-------- Java工程师的进阶之路 设计模式篇(四)

行为模式

  1. 责任链模式(亦称: 职责链模式、命令链、CoR、Chain of Command、Chain of Responsibility)
  2. 命令模式(亦称: 动作、事务、Action、Transaction、Command)
  3. 迭代器模式(亦称: Iterator)
  4. 中介者模式(亦称: 调解人、控制器、Intermediary、Controller、Mediator)
  5. 备忘录模式(亦称: 快照、Snapshot、Memento)
  6. 观察者模式(亦称: 事件订阅者、监听者、Event-Subscriber、Listener、Observer)
  7. 状态模式(亦称: State)
  8. 策略模式(亦称: Strategy)
  9. 模板方法模式(亦称: Template Method)
  10. 访问者模式(亦称: Visitor)

分布式网络篇

-------- Https相对Http更安全的原理探秘

  1. HTTPS
  2. SSL 简介
  3. TLS 简介
  4. HMAC 简介
  5. TLS与SSL的异同
  6. SSL协议基本运行过程
  7. 会话保持(Session ID 和 Session Ticket)
  8. CA认证机构和证书

-------- JWT最流行的跨域身份验证解决方案

  1. 什么是JWT
  2. JWT长什么样
  3. JWT的构成(header、playload、signature)
  4. JWT如何应用
  5. JWT优点和缺点

分布式限流篇

-------- 分布式限流常见算法原理和应用

  1. 限流策略
  2. 限流算法(令牌桶算法、漏桶算法)
  3. 应用级限流(限制总并发数/连接/请求数、限制接口的总并发/请求数、限流接口每秒的请求数、平滑限流接口的请求数)
  4. 接入层限流(Nginx、OpenResty)
  5. 分布式应用限流(Redis+Lua的实现)

分布式事务篇

-------- 分布式事务Seata几种常见模式分析

  1. 分布式事务协议((2PC)两阶段提交协议、(3PC)三阶段提交协议)
  2. AT 模式(一阶段、二阶段提交、二阶段回滚)
  3. TCC 模式(业务模型、允许空回滚、防悬挂控制、幂等控制)
  4. Saga 模式(使用场景、允许空补偿、防悬挂控制、幂等控制、自定义事务恢复策略)
  5. XA 模式
  6. AT、TCC、Saga、XA 模式对比

重要源码解析篇

-------- Dubbo服务启动初始化注解实现源码分析

  1. 概要
  2. @EnableDubbo
  3. @EnableDubboConfig
  4. @DubboComponentScan(@DubboService、@DubboReference)

-------- Spring Session Data Redis源码分析

  1. 概要
  2. @EnableRedisHttpSession
  3. RedisHttpSessionConfiguration
  4. SpringHttpSessionConfiguration

其他干货内容分享

即将带来【SpringCloud专场】和【LeetCode算法系列】,敬请期待......

-------- Docker 常用命令整理汇总大全

-------- Zero-copy 零拷贝技术原理探秘

-------- Redis在电商系统中的几种常用模式

-------- JDK1.8工作中最常用的Stream详细小示例