互联网后端开发核心面试题精选
以下整理了后端开发岗位高频考察的技术点,涵盖数据库、Java 基础、中间件及架构设计等方面。
数据库基础 (MySQL)
- MySQL 引擎类型有哪些,各有什么区别,各有什么应用场景?
- MySQL 事务隔离级别有哪些,举例说明各自的情况?
- 数据库锁有哪几种?有什么区别?
- MySQL SQL 怎么调优和优化,主要看那几个参数,请具体说明一下?
- MySQL 有那几种索引,各有什么区别?
- 什么是悲观锁和乐观锁,说说他们的特点和应用场景?
- 分别说下行级锁和表级锁?update t1 set a = xx for update (a 字段不是主键,也没加索引),是行级锁还是表级锁?为什么?
- MySQL 和 Redis 都搭建主从和高可用,你在项目中 Redis 一般在什么场景下使用?
Java 核心与并发
- synchronized 和 volatile 有什么区别,各自有什么应该场景?
- 你在做项目的过程中遇到死锁吗?你是怎么解决死锁问题的?
- 谈谈你对 JMM、CAS 和 AQS 的理解,CAS 下 ABA 问题及优化方案?
- JVM 运行时数据区有什么?
- Java GC root 有哪些?
- JVM GC 如何调优?
- 为什么要用 Getter 和 Setter 方法,而不是公开属性?
框架与微服务
- 说说单点登录和 OAuth2 协议的流程,它们有什么区别?
- 你常用的设计模式有哪些,请画出类图并讲解一下?
- 面向对象有哪些设计原则?
- Spring AOP 是什么,他的底层是怎么实现的?
- Spring 的核心类有哪些?
- Spring 控制反转和依赖注入是什么?
- Spring 的 bean 和手工 new 出来的对象有什么区别?如果 Spring 中装配的 bean 过多会导致什么问题?
- Spring Cloud 的 Hystrix 有哪些隔离模式?断路器的工作原理是什么?
- Spring Cloud 的 Zuul 处理过程是怎么样的?
- 讲讲你对 Dubbo 的集群容错是怎么做的?
- 讲讲 Dubbo 注册中心的实现原理?
- Dubbo 和 Spring Cloud 的区别?各自有什么优缺点?
分布式与网络
- 如何实现限流?限流常用有哪些算法?各自有什么应用场景?
- 你使用过 Guava 里的哪些类?对它的底层实现原理了解多少?
- 在秒杀 (分布式) 的场景下,如果不使用分布式锁,仅仅只能使用 Guava 工具包和 JDK 工具类,你怎么实现?
- 讲讲你对 BIO、NIO 和 Netty 的理解以及底层实现?
- 讲讲你对 Reactor 模式的理解?
- Docker 和 K8s 是用来干啥的,请简单说一下?


