从面试之前的准备,到面试后的总结,个人感觉在拿到offer之后还是有些想总结下来的东西,最近放假,把面试分享给大家。因为时间比较久了,可能会有一点疏漏,都是个人的想法,如有不妥请多包涵。 本篇面试专题共包含:ActiveMQ、Dubbo、JVM、Kafka、Linux、memcached、MongoDB、MyBatis、MySQL、Netty、Nginx、RabbitMQ、Redis、SpringCloud、SpringBoot、SpringMVC、Spring、SQL、Tomcat、zookeeper、并发编程、多线程、开源框架、设计模式、微服务共计25类知识点的面试真题 注意,文章中出现的面试真题与指导,还有一些技术文档等等,都是可以免费分享给我这篇文章的读者朋友们的,如果你们有需要的话,可以按照下方方式免费领取到,切莫做一个收藏党哦 转发这篇文章之后关注我,在我的主页私信我关键字:面试我给你发免费领取方式!一、ActiveMQ篇1。什么是ActiveMQ?ActiveMQ服务器宕机怎么办?丢消息怎么办?持久化消息非常慢消息的不均匀消费死信队列ActiveMQ中的消息重发时间间隔和重发次数吗?二、MySQL篇 一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15?Mysql的技术特点是什么?Heap表是什么?Mysql服务器默认端口是什么?如何区分FLOAT和DOUBLE?区分CHARLENGTH和LENGTH请简洁描述Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别在Mysql中ENUM的用法是什么?如何定义REGEXP?CHAR和VARCHAR的区别?列的字符串类型可以是什么?如何获取当前的Mysql版本?Mysql中使用什么存储引擎?Mysql驱动程序是什么?TIMESTAMP在UPDATECURRENTTIMESTAMP数据类型上做什么?主键和候选键有什么区别?如何使用Unixshell登录Mysql?myisamchk是用来做什么的?MYSQL数据库服务器性能分析的方法命令有哪些?如何做mysql的性能优化?如何控制HEAP表的最大尺寸?三、Dubbo篇Dubbo支持哪些协议,每种协议的应用场景,优缺点?Dubbo超时时间怎样设置?Dubbo有些哪些注册中心?Dubbo是什么?Dubbo的主要应用场景?Dubbo的核心功能?Dubbo的核心组件?Dubbo服务注册与发现的流程?Dubbo的架构设计?Dubbo的服务调用流程?Dubbo中zookeeper做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?Dubbo服务负载均衡策略Dubbo在安全机制方面是如何解决的?Dubbo连接注册中心和直连的区别Dubbo通信协议dubbo协议为什么采用异步单一长连接RMI协议Hessian协议四、JVM篇说一下jvm的主要组成部分?及其作用?说一下jvm运行时数据区?说一下堆栈的区别?队列和栈是什么?有什么区别?什么是双亲委派模型?说一下类加载的执行过程?怎么判断对象是否可以被回收?java中都有哪些引用类型?说一下jvm有哪些垃圾回收算法?说一下jvm有哪些垃圾回收器?详细介绍一下CMS垃圾回收器?新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?简述分代垃圾回收器是怎么工作的?说一下jvm调优的工具?常用的jvm调优的参数都有哪些?五、Kafka篇kafka可以脱离zookeeper单独使用吗?为什么?kafka有几种数据保留的策略?kafka同时设置了7天和10G清除数据,到第五天的时候消息达到了10G,这个时候kafka将如何处理?什么情况会导致kafka运行变慢?使用kafka集群需要注意什么?Kafka的设计时什么样的呢?Kafka存储在硬盘上的消息格式是什么?Kafka高效文件存储设计特点kafka的ack机制六、Linux篇 Linux中的用户模式和内核模式是什么含意?怎样申请大块内核内存?用户进程间通信主要哪几种方式?Linux中主要有哪几种内核锁?通过伙伴系统申请内核内存的函数有哪些?对文件或设备的操作函数保存在那个数据结构中?创建进程的系统调用有那些?调用schedule()进行进程切换的方式有几种?Linux调度程序是根据进程的动态优先级还是静态优先级来调度进程的?Linux中有哪几种设备?如何唯一标识一个设备?Linux中的浮点运算由应用程序实现还是内核实现?memcached篇memcached是怎么工作的?memcached最大的优势是什么?memcached和MySQL的querycache相比,有什么优缺点?memcached和服务器的localcache(比如PHP的APC、mmap文件等)相比,有什么优点?memcached的cache机制是怎样的?memcached如何实现冗余机制?memcached如何处理容错的?如何将memcached中item批量导入导出?我需要把memcached中的item批量导出导入,怎么办?memcached是如何做身份验证的?memcached的多线程是什么?如何使用它们?memcached能接受的key的最大长度是多少?memcached对item的过期时间有什么限制?为什么单个item的大小被限制在1Mbyte之内?七、MongoDB篇你说的NoSQL数据库是什么意思?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?NoSQL数据库有哪些类型?MySQL与MongoDB之间最基本的差别是什么?你怎么比较MongoDB、CouchDB及CouchBase?MongoDB成为最好NoSQL数据库的原因是什么?32位系统上有什么细微差别?journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?分析器在MongoDB中的作用是什么?名字空间(namespace)是什么?如何执行事务加锁?什么是master或primary?数据在什么时候才会扩展到多个分片(shard)里八、MyBatis篇mybatis中{}和{}的区别是什么?mybatis有几种分页方式?RowBounds是一次性查询全部结果吗?为什么?mybatis逻辑分页和物理分页的区别是什么?mybatis是否支持延迟加载?延迟加载的原理是什么?说一下mybatis的一级缓存和二级缓存?mybatis和hibernate的区别有哪些?mybatis有哪些执行器(Executor)?mybatis分页插件的实现原理是什么?mybatis如何编写一个自定义插件?九、Netty篇NIO和AIO的区别?NIO的组成?Netty的特点?TCP粘包拆包的原因及解决方法?了解哪几种序列化协议?如何选择序列化协议?Netty的零拷贝实现?Netty的高性能表现在哪些方面?NIOEventLoopGroup源码?十、Nginx篇请解释一下什么是Nginx?请列举Nginx的一些特性请列举Nginx和Apache之间的不同点请解释Nginx如何处理HTTP请求在Nginx中,如何使用未定义的服务器名称来阻止处理请求?使用反向代理服务器的优点是什么?请列举Nginx服务器的最佳用途请解释Nginx服务器上的Master和Worker进程分别是什么?请解释你如何通过不同于80的端口开启Nginx?请解释是否有可能将Nginx的错误替换为502错误、503?在Nginx中,解释如何在URL中保留双斜线请解释ngxhttpupstreammodule的作用是什么?请解释什么是C10K问题?请陈述stubstatus和subfilter指令的作用是什么?解释Nginx是否支持将请求压缩到上游?解释如何在Nginx中获得当前的时间?十一、RabbitMQ篇rabbitmq的使用场景有哪些?rabbitmq有哪些重要的角色?rabbitmq有哪些重要的组件?rabbitmq中vhost的作用是什么?rabbitmq的消息是怎么发送的?rabbitmq怎么保证消息的稳定性?rabbitmq怎么避免消息丢失?要保证消息持久化成功的条件有哪些?rabbitmq持久化有什么缺点?rabbitmq有几种广播类型?rabbitmq怎么实现延迟消息队列?rabbitmq集群有什么用?rabbitmq节点的类型有哪些?rabbitmq每个节点是其他节点的完整拷贝吗?为什么?rabbitmq集群中唯一一个磁盘节点崩溃了会发生什么情况?rabbitmq对集群节点停止顺序有要求吗?rabbitmq集群搭建需要注意哪些问题?十二、Redis篇redis是什么?都有哪些使用场景?redis有哪些功能?redis和memecache有什么区别?redis为什么是单线程的?什么是缓存穿透?怎么解决?redis支持的数据类型有哪些?redis和redisson有哪些区别?怎么保证缓存和数据库数据的一致性?redis持久化有几种方式?redis怎么实现分布式锁?redis分布式锁有什么缺陷?redis如何做内存优化?redis淘汰策略有哪些?redis常见的性能问题有哪些?该如何解决?十三、SpringCloudBoot篇什么是springboot?为什么要用springboot?springboot核心配置文件是什么?springboot配置文件有哪几种类型?它们有什么区别?springboot有哪些方式可以实现热部署?jpa和hibernate有什么区别?什么是springcloud?springcloud断路器的作用是什么?springcloud的核心组件有哪些?十四、SpringSpringMVC篇为什么要使用spring?解释一下什么是aop?解释一下什么是ioc?spring有哪些主要模块?spring常用的注入方式有哪些?spring中的bean是线程安全的吗?96。spring支持几种bean的作用域?spring自动装配bean有哪些方式?spring事务实现方式有哪些?说一下spring的事务隔离?springmvc有哪些组件?RequestMapping的作用是什么?Autowired的作用是什么?十五、SQL篇一张表,里面有ID自增主键,当insert了17条记录之后,删除了第15,16,17条记录,再把Mysql重启,再insert一条记录,这条记录的ID是18还是15?Mysql的技术特点是什么?Heap表是什么?Mysql服务器默认端口是什么?与Oracle相比,Mysql有什么优势?如何区分FLOAT和DOUBLE?区分CHARLENGTH和LENGTH?请简洁描述Mysql中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?在Mysql中ENUM的用法是什么如何定义REGEXP?CHAR和VARCHAR的区别?列的字符串类型可以是什么?十六、Tomcat篇 Tomcat的缺省端口是多少,怎么修改?Tomcat有哪几种Connector运行模式(优化)?Tomcat有几种部署方式?Tomcat容器是如何创建servlet类实例?用到了什么原理?Tomcat如何优化?内存调优垃圾回收策略调优共享session处理添加JMS远程监控关于Tomcat的session数目监视Tomcat的内存使用情况打印类的加载情况及对象的回收情况Tomcat一个请求的完整过程Tomcat工作模式十七、zookeeper篇ZooKeeper是什么?ZooKeeper提供了什么?Zookeeper文件系统四种类型的znodeZookeeper通知机制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?你将如何分析Threaddump?为什么我们调用start()方法时会执行run()方法,为什么我们不能直接调用run()方法?Java中你怎样唤醒一个阻塞的线程?在Java中CycliBarriar和CountdownLatch有什么区别?你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的?二十、开源框架篇BeanFactory和ApplicationContext有什么区别?SpringBean的生命周期SpringIOC如何实现?说说SpringAOPSpringAOP实现原理动态代理(cglib与JDK)Spring事务实现方式Spring事务底层原理如何自定义注解实现功能SpringMVC运行流程SpringMVC启动流程Spring的单例实现原理Spring框架中用到了哪些设计模式为什么选择Netty说说业务中,Netty的使用场景原生的NIO在JDK1。7版本存在epollbug什么是TCP粘包拆包TCP粘包拆包的解决办法Netty线程模型说说Netty的零拷贝Netty内部执行流程二十一、设计模式篇请列举出在JDK中几个常用的设计模式?什么是设计模式?你是否在你的代码里面使用过任何设计模式?Java中什么叫单例设计模式?请用Java写出线程安全的单例模式使用工厂模式最主要的好处是什么?在哪里使用?举一个用Java实现的装饰模式(decoratordesignpattern)?它是作用于对象层次还是类层次?在Java中,为什么不允许从静态方法中访问非静态变量?设计一个ATM机,请说出你的设计思路?在Java中,什么时候用重载,什么时候用重写?举例说明什么情况下会更倾向于使用抽象类而不是接口?二十二、微服务篇前后端分离是如何做的微服务哪些框架说说RPC的实现原理说说Dubbo的实现原理读者福利 本文为大家整理了25类面试题,同时还整理了一些学习资料。 如果需要获取本文面试题答案和学习资料的小伙伴可以关注我之后私信我关键字面试我分享给你 如果需要获取本文面试题答案和学习资料的小伙伴可以关注我之后私信我关键字面试我分享给你