从面试之前的准备,到面试后的总结,个人感觉在拿到 offer 之后还是有些想总结下来的东西,最近放假,把面试分享给大家。因为时间比较久了,可能会有一点疏漏,都是个人的想法,如有不妥请多包涵。
本篇面试专题共包含:ActiveMQ、Dubbo、JVM、Kafka、Linux、memcached、MongoDB、MyBatis、MySQL、Netty、Nginx、RabbitMQ、Redis、Spring Cloud、Spring Boot、Spring MVC、Spring、SQL、Tomcat、zookeeper、并发编程、多线程、开源框架、设计模式、微服务共计 25 类知识点的面试真题
1.什么是 ActiveMQ?
ActiveMQ 服务器宕机怎么办?
丢消息怎么办?
持久化消息非常慢
消息的不均匀消费
死信队列
ActiveMQ 中的消息重发时间间隔和重发次数吗?
一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?
Mysql 的技术特点是什么?
Heap 表是什么?
Mysql 服务器默认端口是什么?
如何区分 FLOAT 和 DOUBLE?
区分 CHAR_LENGTH 和 LENGTH
请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别
在 Mysql 中 ENUM 的用法是什么?
如何定义 REGEXP?
CHAR 和 VARCHAR 的区别?
列的字符串类型可以是什么?
如何获取当前的 Mysql 版本?
Mysql 中使用什么存储引擎?
Mysql 驱动程序是什么?
TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?
主键和候选键有什么区别?
如何使用 Unix shell 登录 Mysql?
myisamchk 是用来做什么的?
MYSQL 数据库服务器性能分析的方法命令有哪些?
如何做 mysql 的性能优化?
如何控制 HEAP 表的最大尺寸?
Dubbo 支持哪些协议,每种协议的应用场景,优缺点?
Dubbo 超时时间怎样设置?
Dubbo 有些哪些注册中心?
Dubbo 是什么?
Dubbo 的主要应用场景?
Dubbo 的核心功能?
Dubbo 的核心组件?
Dubbo 服务注册与发现的流程?
Dubbo 的架构设计?
Dubbo 的服务调用流程?
Dubbo 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
Dubbo 服务负载均衡策略
Dubbo 在安全机制方面是如何解决的?
Dubbo 连接注册中心和直连的区别
Dubbo 通信协议 dubbo 协议为什么采用异步单一长连接
RMI 协议
Hessian 协议
说一下 jvm 的主要组成部分?及其作用?
说一下 jvm 运行时数据区?
说一下堆栈的区别?
队列和栈是什么?有什么区别?
什么是双亲委派模型?
说一下类加载的执行过程?
怎么判断对象是否可以被回收?
java 中都有哪些引用类型?
说一下 jvm 有哪些垃圾回收算法?
说一下 jvm 有哪些垃圾回收器?
详细介绍一下 CMS 垃圾回收器?
新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
简述分代垃圾回收器是怎么工作的?
说一下 jvm 调优的工具?
常用的 jvm 调优的参数都有哪些?
kafka 可以脱离 zookeeper 单独使用吗?为什么?
kafka 有几种数据保留的策略?
kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?
什么情况会导致 kafka 运行变慢?
使用 kafka 集群需要注意什么?
Kafka 的设计时什么样的呢?
Kafka 存储在硬盘上的消息格式是什么?
Kafka 高效文件存储设计特点
kafka 的 ack 机制
Linux 中的用户模式和内核模式是什么含意?
怎样申请大块内核内存?
用户进程间通信主要哪几种方式?
Linux 中主要有哪几种内核锁?
通过伙伴系统申请内核内存的函数有哪些?
对文件或设备的操作函数保存在那个数据结构中?
创建进程的系统调用有那些?
调用 schedule()进行进程切换的方式有几种?
Linux 调度程序是根据进程的动态优先级还是静态优先级来调度进程的?
Linux 中有哪几种设备?
如何唯一标识一个设备?
Linux 中的浮点运算由应用程序实现还是内核实现?
memcached 是怎么工作的?
memcached 最大的优势是什么?
memcached 和 MySQL 的 query cache 相比,有什么优缺点?
memcached 和服务器的 local cache(比如 PHP 的 APC、mmap 文件等)相比,有什么优点?
memcached 的 cache 机制是怎样的?
memcached 如何实现冗余机制?
memcached 如何处理容错的?
如何将 memcached 中 item 批量导入导出?
我需要把 memcached 中的 item 批量导出导入,怎么办?
memcached 是如何做身份验证的?
memcached 的多线程是什么?如何使用它们?
memcached 能接受的 key 的最大长度是多少?
memcached 对 item 的过期时间有什么限制?
为什么单个 item 的大小被限制在 1M byte 之内?
你说的 NoSQL 数据库是什么意思?NoSQL 与 RDBMS 直接有什么区别?为什么要使用和不使用 NoSQL 数据库?说一说 NoSQL 数据库的几个优点?
NoSQL 数据库有哪些类型?
MySQL 与 MongoDB 之间最基本的差别是什么?
你怎么比较 MongoDB、CouchDB 及 CouchBase?
MongoDB 成为最好 NoSQL 数据库的原因是什么?
32 位系统上有什么细微差别?
journal 回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?
分析器在 MongoDB 中的作用是什么?
名字空间(namespace)是什么?
如何执行事务/加锁?
什么是 master 或 primary?
数据在什么时候才会扩展到多个分片(shard)里
mybatis 中 #{}和 ${}的区别是什么?
mybatis 有几种分页方式?
RowBounds 是一次性查询全部结果吗?为什么?
mybatis 逻辑分页和物理分页的区别是什么?
mybatis 是否支持延迟加载?延迟加载的原理是什么?
说一下 mybatis 的一级缓存和二级缓存?
mybatis 和 hibernate 的区别有哪些?
mybatis 有哪些执行器(Executor)?
mybatis 分页插件的实现原理是什么?
mybatis 如何编写一个自定义插件?
NIO 和 AIO 的区别?
NIO 的组成?
Netty 的特点?
TCP 粘包/拆包的原因及解决方法?
了解哪几种序列化协议?
如何选择序列化协议?
Netty 的零拷贝实现?
Netty 的高性能表现在哪些方面?
NIOEventLoopGroup 源码?
请解释一下什么是 Nginx?
请列举 Nginx 的一些特性
请列举 Nginx 和 Apache 之间的不同点
请解释 Nginx 如何处理 HTTP 请求
在 Nginx 中,如何使用未定义的服务器名称来阻止处理请求?
使用“反向代理服务器”的优点是什么?
请列举 Nginx 服务器的最佳用途
请解释 Nginx 服务器上的 Master 和 Worker 进程分别是什么?
请解释你如何通过不同于 80 的端口开启 Nginx?
请解释是否有可能将 Nginx 的错误替换为 502 错误、503?
在 Nginx 中,解释如何在 URL 中保留双斜线
请解释 ngx_http_upstream_module 的作用是什么?
请解释什么是 C10K 问题?
请陈述 stub_status 和 sub_filter 指令的作用是什么?
解释 Nginx 是否支持将请求压缩到上游?
解释如何在 Nginx 中获得当前的时间?
rabbitmq 的使用场景有哪些?
rabbitmq 有哪些重要的角色?
rabbitmq 有哪些重要的组件?
rabbitmq 中 vhost 的作用是什么?
rabbitmq 的消息是怎么发送的?
rabbitmq 怎么保证消息的稳定性?
rabbitmq 怎么避免消息丢失?
要保证消息持久化成功的条件有哪些?
rabbitmq 持久化有什么缺点?
rabbitmq 有几种广播类型?
rabbitmq 怎么实现延迟消息队列?
rabbitmq 集群有什么用?
rabbitmq 节点的类型有哪些?
rabbitmq 每个节点是其他节点的完整拷贝吗?为什么?
rabbitmq 集群中唯一一个磁盘节点崩溃了会发生什么情况?
rabbitmq 对集群节点停止顺序有要求吗?
rabbitmq 集群搭建需要注意哪些问题?
redis 是什么?都有哪些使用场景?
redis 有哪些功能?
redis 和 memecache 有什么区别?
redis 为什么是单线程的?
什么是缓存穿透?怎么解决?
redis 支持的数据类型有哪些?
redis 和 redisson 有哪些区别?
怎么保证缓存和数据库数据的一致性?
redis 持久化有几种方式?
redis 怎么实现分布式锁?
redis 分布式锁有什么缺陷?
redis 如何做内存优化?
redis 淘汰策略有哪些?
redis 常见的性能问题有哪些?该如何解决?
什么是 spring boot?
为什么要用 spring boot?
spring boot 核心配置文件是什么?
spring boot 配置文件有哪几种类型?它们有什么区别?
spring boot 有哪些方式可以实现热部署?
jpa 和 hibernate 有什么区别?
什么是 spring cloud?
spring cloud 断路器的作用是什么?
spring cloud 的核心组件有哪些?
为什么要使用 spring?
解释一下什么是 aop?
解释一下什么是 ioc?
spring 有哪些主要模块?
spring 常用的注入方式有哪些?
spring 中的 bean 是线程安全的吗?
96.spring 支持几种 bean 的作用域?
spring 自动装配 bean 有哪些方式?
spring 事务实现方式有哪些?
说一下 spring 的事务隔离?
spring mvc 有哪些组件?
@RequestMapping 的作用是什么?
@Autowired 的作用是什么?
一张表,里面有 ID 自增主键,当 insert 了 17 条记录之后,删除了第 15,16,17 条记录,再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 还是 15 ?
Mysql 的技术特点是什么?
Heap 表是什么?
Mysql 服务器默认端口是什么?
与 Oracle 相比,Mysql 有什么优势?
如何区分 FLOAT 和 DOUBLE?
区分 CHAR_LENGTH 和 LENGTH?
请简洁描述 Mysql 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
在 Mysql 中 ENUM 的用法是什么
如何定义 REGEXP?
CHAR 和 VARCHAR 的区别?
列的字符串类型可以是什么?
Tomcat 的缺省端口是多少,怎么修改?
Tomcat 有哪几种 Connector 运行模式(优化)?
Tomcat 有几种部署方式?
Tomcat 容器是如何创建 servlet 类实例?用到了什么原理?
Tomcat 如何优化?
内存调优
垃圾回收策略调优
共享 session 处理
添加 JMS 远程监控
关于 Tomcat 的 session 数目
监视 Tomcat 的内存使用情况
打印类的加载情况及对象的回收情况
Tomcat 一个请求的完整过程
Tomcat 工作模式
ZooKeeper 是什么?
ZooKeeper 提供了什么?
Zookeeper 文件系统
四种类型的 znode
Zookeeper 通知机制
Zookeeper 做了什么?
zk 的命名服务(文件系统)
zk 的配置管理(文件系统、通知机制)
Zookeeper 集群管理(文件系统、通知机制)
Zookeeper 分布式锁(文件系统、通知机制)
Synchronized 用过吗,其原理是什么 ?
你刚才提到获取对象的锁,这个“锁”是什么?如何确定对象的锁?
什么是可重入性?为什么说 Synchronized 是可重入锁?
JVM 对 Java 的原生锁做了哪些优化?
为什么说 Synchronized 是非公平锁?
什么是锁消除和锁粗化?
为什么说 Synchronized 是一个悲观锁?乐观锁的实现原理又是什么?
什么是 CAS,它有什么特性?
乐观锁一定就是好的吗?
跟 Synchronized 相比,可重入 ReentrantLock 其实现原理有什么不同?
请谈谈 AQS 框架是怎么回事
请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同
ReentrantLock 是如何实现可重入性的?
除了 ReentrantLock,你还接触过 JUC 中的哪些并发工具?
请谈谈 ReadWriteLock 和 StampedLock
如何让 Java 的线程彼此同步?你还了解过哪些同步器?请分别介绍一下
CyclicBarrier 和 CountDownLatch 看起来很相似,请对比一下
Java 中的线程池是如何实现的?
创建线程池的几个核心构造参数
线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?
既然提到可以通过配置不同参数创建不同的线程池,那么 Java 中默认实现好的线程池又有哪些?请比较它们的异同
如何在 Java 线程池中提交线程?
什么是 Java 的内存模型,Java 中各个线程是怎么彼此看到对方的变量的?
请谈谈 Volatile 有什么特点,它为什么能保证变量对所有线程的可见性?
既然 Volatile 能保证县城见的变量可见性,是不是就意味着基于 Volatile 变量的运算就是并发安全的?
请对比下 Volatile 和 Synchronized 的异同
请谈谈 RhreadLocal 是怎么解决并发安全的?
很多人都说要慎用 TheadLocal,谈谈你的理解,使用 TheadLocal 需要注意些什么?
现在有 T1、T2、T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行?
用 Java 写代码来解决生产者——消费者问题
用 Java 编程一个会导致死锁的程序,你将怎么解决?
什么是原子操作,Java 中的原子操作是什么?
Java 中的 volatile 关键是什么作用?怎样使用它?在 Java 中它跟 synchronized 方法有什么不同?
你将如何使用 threaddump?你将如何分析 Thread dump?
为什么我们调用 start()方法时会执行 run()方法,为什么我们不能直接调用 run()方法?
Java 中你怎样唤醒一个阻塞的线程?
在 Java 中 CycliBarriar 和 CountdownLatch 有什么区别?
你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的?
BeanFactory 和 ApplicationContext 有什么区别?
Spring Bean 的生命周期
Spring IOC 如何实现?
说说 Spring AOP
Spring AOP 实现原理
动态代理(cglib 与 JDK)
Spring 事务实现方式
Spring 事务底层原理
如何自定义注解实现功能
Spring MVC 运行流程
Spring MVC 启动流程
Spring 的单例实现原理
Spring 框架中用到了哪些设计模式
为什么选择 Netty
说说业务中,Netty 的使用场景
原生的 NIO 在 JDK 1.7 版本存在 epoll bug
什么是 TCP 粘包/拆包
TCP 粘包/拆包的解决办法
Netty 线程模型
说说 Netty 的零拷贝
Netty 内部执行流程
请列举出在 JDK 中几个常用的设计模式?
什么是设计模式?你是否在你的代码里面使用过任何设计模式?
Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
使用工厂模式最主要的好处是什么?在哪里使用?
举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次?
在 Java 中,为什么不允许从静态方法中访问非静态变量?
设计一个 ATM 机,请说出你的设计思路?
在 Java 中,什么时候用重载,什么时候用重写?
举例说明什么情况下会更倾向于使用抽象类而不是接口?
前后端分离是如何做的
微服务哪些框架
说说 RPC 的实现原理
说说 Dubbo 的实现原理
本文为大家整理了 25 类面试题,同时还整理了一些面试的。
传送门