面试问题汇总
本文整理了一些面试时面试官必问的知识点,其中包括了有基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等。
以下是文档涉及的主要内容:
JVM
-
线程
-
JVM内存区域
-
JVM运行时内存
-
垃圾回收与算法
-
JAVA 四种引用类型
-
GC分代收集算法 VS 分区收集算法
-
GC垃圾收集器
-
JAVA IO/NIO
-
JVM 类加载机制
线程
JVM内存区域
JVM运行时内存
垃圾回收与算法
JAVA 四种引用类型
GC分代收集算法 VS 分区收集算法
GC垃圾收集器
JAVA IO/NIO
JVM 类加载机制
JAVA集合
-
接口继承关系和实现
-
List
-
ArrayList(数组)
-
Vector(数组实现、线程同步)
-
LinkList(链表)
-
Set
-
HashSet(Hash表)
-
TreeSet(二叉树)
接口继承关系和实现
List
ArrayList(数组)
Vector(数组实现、线程同步)
LinkList(链表)
Set
HashSet(Hash表)
TreeSet(二叉树)
JAVA多线程并发
-
JAVA并发知识库
-
JAVA线程实现/创建方式
-
4种线程池
-
线程生命周期(状态)
-
终止线程4种方式
-
sleep与wait 区别
-
start与run区别
-
JAVA后台线程
-
JAVA锁
-
线程基本方法4.1.11. 线程上下文切换
-
同步锁与死锁
-
线程池原理
-
JAVA阻塞队列原理
-
CyclicBarrier、CountDownLatch、Semaphore的用法
-
volatile关键字的作用(变量可见性、禁止重排序)
-
如何在两个线程之间共享数据
JAVA并发知识库
JAVA线程实现/创建方式
4种线程池
线程生命周期(状态)
终止线程4种方式
sleep与wait 区别
start与run区别
JAVA后台线程
JAVA锁
线程基本方法4.1.11. 线程上下文切换
同步锁与死锁
线程池原理
JAVA阻塞队列原理
CyclicBarrier、CountDownLatch、Semaphore的用法
volatile关键字的作用(变量可见性、禁止重排序)
如何在两个线程之间共享数据
JAVA基础
-
JAVA异常分类及处理
-
JAVA反射
-
JAVA注解
-
JAVA内部类
-
JAVA泛型
-
JAVA序列化(创建可复用的Java对象)
-
JAVA复制
JAVA异常分类及处理
JAVA反射
JAVA注解
JAVA内部类
JAVA泛型
JAVA序列化(创建可复用的Java对象)
JAVA复制
Spring 原理
-
Spring 特点
-
Spring 核心组件
-
Spring 常用模块
-
Spring 主要包
-
Spring 常用注解
-
Spring第三方结合
-
Spring IOC原理
-
Spring APO原理
-
Spring MVC原理
-
Spring Boot原理
-
JPA原理
-
Mybatis缓存
-
Tomcat架构
Spring 特点
Spring 核心组件
Spring 常用模块
Spring 主要包
Spring 常用注解
Spring第三方结合
Spring IOC原理
Spring APO原理
Spring MVC原理
Spring Boot原理
JPA原理
Mybatis缓存
Tomcat架构
微服务
-
服务注册发现
-
API 网关
-
配置中心
-
事件调度(kafka)
-
服务跟踪(starter-sleuth)
-
服务熔断(Hystrix)
-
Hystrix断路器机制
-
API管理
服务注册发现
API 网关
配置中心
事件调度(kafka)
服务跟踪(starter-sleuth)
服务熔断(Hystrix)
Hystrix断路器机制
API管理
Netty 与RPC
-
Netty 原理
-
Netty 高性能
-
Netty RPC实现
-
关键技术
-
核心流程
-
消息编解码
-
通讯过程
-
RMI实现方式
Netty 原理
Netty 高性能
Netty RPC实现
关键技术
核心流程
消息编解码
通讯过程
RMI实现方式
分布式缓存
-
缓存雪崩
-
缓存穿透
-
缓存预热
-
缓存更新
-
缓存降级
缓存雪崩
缓存穿透
缓存预热
缓存更新
缓存降级
网络
-
网络7层架构
-
TCP/IP原理
-
TCP三次握手/四次挥手
-
HTTP原理
-
CDN 原理
-
分发服务系统
-
负载均衡系统
-
管理系统
网络7层架构
TCP/IP原理
TCP三次握手/四次挥手
HTTP原理
CDN 原理
分发服务系统
负载均衡系统
管理系统
日志
-
Slf4j
-
Log4j
-
LogBack
-
Logback优点
-
ELK
Slf4j
Log4j
LogBack
Logback优点
ELK
Zookeeper
-
Zookeeper概念
-
Zookeeper角色
-
Zookeeper工作原理(原子广播)
-
Znode有四种形式的目录节点
Zookeeper概念
Zookeeper角色
Zookeeper工作原理(原子广播)
Znode有四种形式的目录节点
Kafka
-
Kafka概念
-
Kafka数据存储设计
-
partition的数据文件(offset,MessageSize,data)
-
数据文件分段segment(顺序读写、分段命令、二分查找)
-
数据文件索引(分段索引、稀疏存储)
-
生产者设计
-
负载均衡(partition会均衡分布到不同broker上)
-
批量发送
-
压缩(GZIP或Snappy)
-
消费者设计
Kafka概念
Kafka数据存储设计
partition的数据文件(offset,MessageSize,data)
数据文件分段segment(顺序读写、分段命令、二分查找)
数据文件索引(分段索引、稀疏存储)
生产者设计
负载均衡(partition会均衡分布到不同broker上)
批量发送
压缩(GZIP或Snappy)
消费者设计
RabbitMQ
-
RabbitMQ概念
-
RabbitMQ架构
-
Exchange 类型
RabbitMQ概念
RabbitMQ架构
Exchange 类型
设计模式
-
设计原则
-
工厂方法模式
-
抽象工厂模式
-
单例模式
-
建造者模式
-
原型模式
-
适配器模式
-
装饰器模式
-
代理模式
-
外观模式
-
桥接模式
-
组合模式
-
享元模式
-
策略模式
-
模板方法模式
-
观察者模式
-
迭代子模式
-
责任链模式
-
命令模式
-
备忘录模式
设计原则
工厂方法模式
抽象工厂模式
单例模式
建造者模式
原型模式
适配器模式
装饰器模式
代理模式
外观模式
桥接模式
组合模式
享元模式
策略模式
模板方法模式
观察者模式
迭代子模式
责任链模式
命令模式
备忘录模式