前言
2021金三银四,年假准备跳槽的小伙伴注意了,小编在这里为大家准备了Java后端必备的35个专题面试技术栈!都是小编在各个大厂总结出来的面试真题,小编此次分享涵盖了Java后端面试必问的35个技术点:JVM、Linux、MyBatista、Spring Boot、Spring、SQL优化、Tomcat、Zookeeper、消息中间件、Dubbo、MongoDB、MySQL、RabbitMQ、Redis、Spring Cloud、并发编程、开源框架、ActiveMQ、等35个专题技术栈分享给到你们,但愿年后能助你们一臂之力,挺进一线互联网大厂,冲刺年薪百万!前端
小编这篇分享篇幅可能有点长,观看的朋友能够先了解一下目录java
- JVM面试专题
- Linux面试专题
- MyBatis面试专题
- SpringBoot面试专题
- Spring面试专题
- SQL优化面试专题
- Tomcat面试专题
- zookeeper面试专题
- 消息中间件面试专题
- Dubbo面试(上)
- Dubbo面试专题(下)
- MongoDB面试专题
- mysql面试专题
- RabbitMQ消息中间件面试专题
- redis面试题(上)
- Redis面试专题(下)
- SpringCloud面试专题
- 并发编程(上)
- 并发编程面试专题(下)
- 开源框架面试专题
- ActiveMQ消息中间件面试专题
- Java基础面试题
- Kafka面试专题
- memcached面试专题
- ElasticSearch面试题
- MySQL性能优化的21个最佳实践
- SpringMVC面试专题
- 面试必备之乐观锁与悲观锁
- 设计模式面试专题
- java后端面试题
- Netty面试专题
- Nginx面试专题
- 多线程面试专题
- 数据库面试专题
- 微服务面试专题

1、JVM面试专题
- 内存模型以及分区,须要详细到每一个区放什么?
- 什么状况下会发生栈内存溢出?
- 详解JVM内存模型
- JVM内存为何要分红新生代,老年代,持久代。新生代中为何
- 要分为Eden和Survivor
- 堆里面的分区:Eden,survival (from+ to),老年代,各自的特色。
- GC 的两种断定方法:
- SafePoint 是什么
- GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特色,分别用在什么地方,若是让你优化收集方法,有什么思路?
- GC 的三种收集方法:标记清除、标记整理、复制算法的原理与特色,分别用在什么地方,若是让你优化收集方法,有什么思路?
- 类加载的几个过程:
- JVM 内存分哪几个区,每一个区的做用是什么?
- 如何判断一个对象是否存活?(或者 GC 对象的断定方法)
- 简述 java 垃圾回收机制?
- java 内存模型
- 类加载器双亲委派模型机制?
- 垃圾收集器相关
- 怎么打出线程栈信息
- 强引用、软引用、弱引用、虚引用的区别?
- 什么是类加载器,类加载器有哪些?
- 内存屏障
- 说一下 JVM由那些部分组成,运行流程是什么?
- 说一下 JVM 运行时数据区
- 详细的介绍下程序计数器?(重点理解)
- 你能给我详细的介绍Java堆吗?
- 能不能解释一下方法区
- 什么是JVM字节码执行引擎
- 堆栈的区别是什么?
- Java会存在内存泄漏吗?请说明为何?
- 垃圾回收器的原理是什么?有什么办法手动进行垃圾回收?
- 简单说说你了解的类加载器,能够打破双亲委派么,怎么打破。
- 为何须要双亲委派模型?
- 说说你知道的几种主要的JVM参数
- 简述 java 内存分配与回收策率以及 Minor GC 和Major GC
- 对象优先在堆的 Eden 区分配。
- 大对象直接进入老年代.
- 长期存活的对象将直接进入老年代.
当 Eden 区没有足够的空间进行分配时,虚拟机会执行一次 Minor GC.Minor Gc 通node
常发生在新生代的 Eden 区,在这个区的对象生存期短,每每发生 Gc 的频率较高,mysql
回收速度比较快;Full Gc/Major GC 发生在老年代,通常状况下,触发老年代 GCweb
的时候不会触发 Minor GC,可是经过配置,能够在 Full GC 以前进行一次 Minor面试
GC 这样能够加快老年代的回收速度。redis
因为篇幅有限,获取完整面试题和答案解析能够转发后关注公众号:麒麟改bug获取算法
35.Jdk和Jre和JVM的区别spring

2、Linux面试专题
- Linux 中主要有哪几种内核锁?
- 怎样申请大块内核内存?
- 经过伙伴系统申请内核内存的函数有哪些?
- 如何加载、卸载一个模块?
- Linux 中的浮点运算由应用程序实现仍是内核实现?
- 模块程序可否使用可连接的库函数?
- 字符设备驱动程序的关键数据结构是哪一个?
- 如何惟一标识一个设备?
- 什么是Linux
- Unix和Linux有什么区别?
- Linux的基本组件是什么?
- BASH和DOS之间的基本区别是什么?
- Linux 开机启动过程?
- Linux 使用的进程间通讯方式?
- Linux系统安装多个桌面环境有帮助吗?
- 什么是BASH?
- 什么是GUI?
- GNU项目的重要性是什么?
- 简单 Linux 文件系统?
- 什么是硬连接和软连接?
- 一台 Linux 系统初始化环境后须要作一些什么安全工做?
- 什么是网站数据库注入?
- 如何选择 Linux 操做系统版本?
- 请问当用户反馈网站访问慢,你会如何处理?
- Linux 性能调优都有哪几种方法?
- 基本命令:cd、pwd、ls、ll、touch、mkdir、cat、more、less、tail
3、MyBatis面试专题
一、什么是 MyBatis?sql
答:MyBatis 是一个能够自定义 SQL、存储过程和高级映射的持久层框架。
二、讲下 MyBatis 的缓存
答:MyBatis 的缓存分为一级缓存和二级缓存,一级缓存放在 session 里面,默认就有,二级缓
存放在它的命名空间里,默认是不打开的,使用二级缓存属性类须要实现 Serializable 序列化
接口(可用来保存对象的状态),可在它的映射文件中配置<cache/>
三、Mybatis 是如何进行分页的?分页插件的原理是什么?
四、简述 Mybatis 的插件运行原理,以及如何编写一个插件?
五、Mybatis 动态 sql 是作什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理不?
六、为何说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
答:Hibernate 属于全自动 ORM 映射工具,使用 Hibernate 查询关联对象或者关联集合对象时,能够根据对象关系模型直接获取,因此它是全自动的。而 Mybatis 在查询关联对象或关联集合对象时,须要手动编写 sql 来完成,因此,称之为半自动 ORM 映射工具。
七、MyBatis 与 Hibernate 有哪些不一样?
八、MyBatis 的好处是什么?
九、MyBatis 实现一对一有几种方式?具体怎么操做的?
十、Mybatis 能执行一对1、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区
别?
十一、MyBatis 里面的动态 Sql 是怎么设定的?用什么语法?
十二、Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式?
1三、Xml 映射文件中,除了常见的 select|insert|updae|delete 标签以外,还有哪些标签?
1四、当实体类中的属性名和表中的字段名不同,若是将查询的结果封装到指定 pojo?
1五、Mybatis 映射文件中,若是 A 标签经过 include 引用了 B 标签的内容,请问,B 标签可否定义在 A 标签的后面,仍是说必须定义在 A 标签的前面?
1六、Mybatis 中如何执行批处理?
1七、Mybatis 都有哪些 Executor 执行器?它们之间的区别是什么?
1八、Mybatis 执行批量插入,能返回数据库主键列表吗?
1九、Mybatis 是否能够映射 Enum 枚举类?
20、如何获取自动生成的(主)键值?
2一、使用 MyBatis 的 mapper 接口调用时有哪些要求?
2二、IBatis 和 MyBatis 在核心处理类分别叫什么?
2三、Mybatis 是如何进行分页的?分页插件的原理是什么?
2四、简述 Mybatis 的插件运行原理,以及如何编写一个插件
2五、一级、二级缓存
2六、简述 Mybatis 的 Xml 映射文件和 Mybatis 内部数据结构之间的映射关系?
2七、Mapper 编写有哪几种方式?
2八、什么是MyBatis的接口绑定?有哪些实现方式?
2九、使用MyBatis的mapper接口调用时有哪些要求?
30、这个Dao接口的工做原理是什么?Dao接口里的方法,参数不一样时,方法能重载吗
3一、简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?Xml映射文件中,除了常见的select|insert|updae|delete标签以外,还有哪些标签?
3二、Mybatis能执行一对多,一对一的联系查询吗,有哪些实现方法
3三、Mybatis是否能够映射Enum枚举类?
3四、简述Mybatis的插件运行原理,以及如何编写一个插件。

4、SpringBoot面试专题
一、什么是 Spring Boot?
二、SpringBoot与SpringCloud 区别?
三、Spring Boot 有哪些优势?
四、推荐和默认的日志框架是哪一个?
五、它主要由哪几个注解组成的?
六、Spring Boot 的核心注解是哪一个?
七、Spring Boot 支持哪些日志框架?
八、SpringBoot的缺点
九、与 1.X 有什么区别?
十、SpringBoot Starter的工做原理
十一、Spring Boot 2.X 有什么新特性?
十二、SpringBoot支持什么前端模板?
1三、Spring Boot 须要独立的容器运行吗?
1四、SpringBoot的自动配置原理是什么?
1五、SpringBoot 实现热部署有哪几种方式?
1六、如何在 Spring Boot 启动的时候运行一些特定的代码?
1七、什么是 JavaConfifig?
1八、Spring Boot 是否可使用 XML 配置 ?
1九、什么是 YAML?
20、、bootstrap.properties 和application.properties 有何区别 ?
21SpringBoot多数据源拆分的思路
2二、spring boot 核心配置文件是什么?b
2三、Async异步调用方法:
2四、保护 Spring Boot 应用有哪些方法?
2五、比较一下 Spring Security 和 Shiro 各自的优缺点 ?
2六、Spring Boot 中如何解决跨域问题 ?
2七、Spring Boot 中的监视器是什么?
2八、SpringBoot性能如何优化?
2九、如何从新加载 Spring Boot 上的更改,而无需从新启动服务器?
30、Spring Boot项目如何热部署?
3一、SpringBoot的特征?
3二、如何快速构建一个SpringBoot项目?
3三、SpringBoot支持配置文件的格式?
3四、SpringBoot启动方式?
5、Spring面试专题
- 什么是 Spring 框架?
- Spring 框架有哪些主要模块?
- 使用 Spring 框架能带来哪些好处?
- 什么是依赖注入?
- 什么是控制反转(IOC)?
- 请解释下 Spring 框架中的 IoC?
- 核心容器(应用上下文) 模块
- XMLBeanFactory
- Spring的优缺点是什么?
- Spring框架的设计目标,设计理念,和核心是什么?
- Spring 框架中都用到了哪些设计模式?
- 解释 JDBC 抽象和 DAO 模块
- 解释对象/关系映射集成模块
- 什么是 Spring IOC 容器?
- BeanFactory 和 ApplicationContext有什么区别?
- Spring 如何设计容器的,BeanFactory和ApplicationContext的关系详解:
- 有哪些不一样类型的依赖注入实现方式?
- Spring 有几种配置方式?
- 如何用基于 Java 配置的方式配置 Spring?
- 怎样用注解的方式配置 Spring?
6、SQL优化面试专题

- Mysql 的技术特色是什么?
- MySQL 中有哪几种锁?
- 惟一索引比普通索引快吗, 为何?
- Heap 表是什么?
- MySQL 中有哪些不一样的表格?
- MySQL由哪些部分组成, 分别用来作什么?
- 与 Oracle 相比,Mysql 有什么优点?
- 简述在MySQL 数据库中 MyISAM 和InnoDB 的区别?
- MySQL查询缓存有什么弊端, 应该什么状况下使用, 8.0版本对查询缓存有什么变动?
- 如何区分 FLOAT 和 DOUBLE?
- 区分 CHAR_LENGTH 和 LENGTH?
- MySQL 中InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?SQL 标准定义的四个隔离级别为?
- MyISAM和InnoDB的区别有哪些?
- MySQL怎么恢复半个月前的数据
- 若是一个表有一列定义为TIMESTAMP,将发生什么?
- 你怎么看到为表格定义的全部索引?
- 作过哪些MySQL索引相关优化?
- 一千万条数据的表, 如何分页查询
- MySQL_fetch_array 和MySQL_fetch_object 的区别是什么?
- MySQL 如何优化DISTINCT?
- 可使用多少列建立索引?
- 订单表数据量愈来愈大致使查询缓慢, 如何处理
- 若是一个表有一列定义为 TIMESTAMP,将发生什么?
- 怎样才能找出最后一次插入时分配了哪一个自动增量?
- 如何在 Unix 和 Mysql 时间戳之间进行转换?
- mysql_fetch_array 和 mysql_fetch_object 的区别是什么?
- 什么是通用 SQL 函数?
- MySQL 里记录货币用什么字段类型好
- MySQL 有关权限的表都有哪几个?
- MySQL 数据库做发布系统的存储,一天五万条以上的增量, 预计运维三年,怎么优化?
7、Tomcat面试专题
- tomcat 有哪几种Connector 运行模式(优化)?
- Tomcat有几种部署方式?
- Tomcat的缺省端口是多少,怎么修改?
- tomcat 如何优化?
- tomcat容器是如何建立servlet类实例?用到了什么原理?
- 垃圾回收策略调优
- 共享session处理
- 内存调优
- 专业点的分析工具备
- 添加JMS远程监控
- 打印类的加载状况及对象的回收状况
- 关于Tomcat的session数目
- 监视Tomcat的内存使用状况
- .Tomcat工做模式?
- get方式和post方式有何区别
- Servlet相关 API
- 什么是cookie?Session和cookie有什么区别?
8、zookeeper面试专题
- ZooKeeper和dubbo的区别?
- ZooKeeper是什么?
- ZooKeeper 提供了什么?
- 说说Zookeeper 文件系统:
- Zookeeper的java客户端都有哪些?
- 说说ZAB协议?
- 四种类型的数据节点 Znode
- Zookeeper Watcher 机制 -- 数据变动通知
- Zookeeper节点宕机如何处理?
- Zookeeper的典型应用场景?
- 服务端处理 Watcher 实现
- ACL 权限控制机制
- 客户端回调 Watcher
- 服务器角色
- 说一下Zookeeper Watcher机制
- 服务端处理Watcher的流程?
- 客户端回调 Watcher流程?
- 客户端注册Watcher的流程?
- 说说ACL权限控制机制?
- Zookeeper 下 Server 工做状态
- zookeeper 是如何保证事务的顺序一致性的?
- 分布式集群中为何会有 Master?
- 集群最少要几台机器,集群规则是怎样的?
- 集群支持动态添加机器吗?
- chubby 是什么,和 zookeeper 比你怎么看?
- ZAB 和 Paxos 算法的联系与区别?
因为篇幅有限,获取完整面试题和答案解析能够转发后关注公众号:麒麟改bug获取
9、消息中间件面试专题
- activemq 若是数据提交不成功怎么办?
- activemq 的几种通讯方式:
- 如何解决消息重复问题
- activeMQ 发送消息的方式有哪些?
- 大量的消息每页被消费,可否发生 oom 异常?
- 消息通讯的基本方式有哪两种?分别是哪些?
- 什么是死信队列?
- activeMQ 如何调优
- Basic.Reject 的用法是什么?
- 为何不该该对全部的 message 都使用持久化机制?
- 向不存在的 exchange 发 publish 消息会发生什么?
- 为何 heavy RPC 的使用场景下不建议采用 disk node ?
- 向不存在的exchange 发 publish 消息会发生什么?
- queue 执行 consume 动做会发生什么?
- 什么状况下 producer 不主动建立 queue 是安全的?
- “dead letter”queue 的用途?
10、Dubbo面试(上)
一、Dubbo 支持哪些协议,每种协议的应用场景,优缺点?
- dubbo:
- rmi:
- webservice:
- http:
- hessian:
- memcache:
- redis:
二、Dubbo 超时时间怎样设置?有几种设计方式?
三、Dubbo 集群的负载均衡有哪些策略 ?
四、Dubbo 提供了哪些常见的集群策略实现?
五、Dubbo 是什么?
六、Dubbo 的主要应用场景?
七、Dubbo 的核心功能?
八、Dubbo 的架构设计?
九、Dubbo 框架设计一共划分了 10 个层,每一个对应的做用是?
- 服务接口层(Service)
- 配置层(Config)
- 服务代理层(Proxy)
- 服务注册层(Registry)
- 集群层(Cluster)
- 监控层(Monitor)
- 远程调用层(Protocol)
- 信息交换层(Exchange)
- 网络传输层(Transport)

11、Dubbo面试专题(下)
- dubbo 服务负载均衡策略?
- Dubbo 中 zookeeper 作注册中心,若是注册中心集群都挂掉,发布者和订阅者之间还能通讯么?
- dubbo 链接注册中心和直连的区别?
- dubbo 服务集群配置(集群容错模式)
- Dubbo 在安全机制方面是如何解决的
- dubbo 通讯协议 dubbo 协议为何要消费者比提供者个数多:
- dubbo 通讯协议 dubbo 协议为何不能传大包:
- . RMI 协议
- dubbo 通讯协议 dubbo 协议为何采用异步单一长链接:
- dubbo 通讯协议 dubbo 协议适用范围和适用场景
- Hessian 协议
- Webservice
- Thrif
12、MongoDB面试专题
- MySQL 与 MongoDB 之间最基本的差异是什么?
- NoSQL 数据库有哪些类型?
- 为何要使用和不使用NoSQL 数据库?
- 说一说 NoSQL 数据库的几个优势?
- 你说的 NoSQL 数据库是什么意思?
- NoSQL 与 RDBMS 直接有什么区别?
- 你怎么比较 MongoDB、CouchDB 及 CouchBase?
- 32 位系统上有什么细微差异?
- MongoDB 成为最好 NoSQL 数据库的缘由是什么?
- 若是用户移除对象的属性,该属性是否从存储层中删除?
- 容许空值 null 吗?
- 分析器在 MongoDB 中的做用是什么?
- 更新操做马上 fsync 到磁盘?
- 为何个人数据文件如此庞大?
- 如何执行事务/加锁?
- 启用备份故障恢复须要多久?
- 我必须调用 getLastError 来确保写操做生效了么?
- 分片(sharding)和复制(replication)是怎样工做的?
- 数据在何时才会扩展到多个分片(shard)里?
- 我能够把 moveChunk 目录里的旧文件删除吗?
十3、mysql面试专题
- MySQL由哪些部分组成, 分别用来作什么?
- MySQL查询缓存有什么弊端, 应该什么状况下使用?
- 8.0版本对查询缓存有什么变动?
- 作过哪些MySQL索引相关优化
- MySQL事务的隔离级别, 分别有什么特色?
- MyISAM和InnoDB的区别有哪些?
- 一千万条数据的表, 如何分页查询?
- 作过哪些MySQL索引相关优化?
- 订单表数据量愈来愈大致使查询缓慢, 如何处理?
十4、RabbitMQ消息中间件面试专题
一、RocketMq是什么?
二、RocketMq有什么功能?
三、RoctetMq的架构有哪些组成?对应的功能是哪些?
- NameServer
- Broker
- Producer生产者
- Consumer消费者
四、消息的可用性
五、负载均衡
六、解耦、异步、削峰是什么?
七、消息队列有什么缺点
八、Kafka、ActiveMQ、RabbitMQ、RocketMQ 有什么优缺点?

九、MQ 有哪些常见问题?如何解决这些问题?
十、RabbitMQ基本概念
十一、RabbitMQ的工做模式
十二、如何保证RabbitMQ消息的顺序性?
1三、如何保证RabbitMQ消息的可靠传输?
十5、Redis面试题(上)
- 什么是 Redis?
- 简述它的优缺点?
- Redis 与 memcached 相比有哪些优点?
- Redis 的数据类型?
- Redis 相比Memcached 有哪些优点?
- Redis 有哪些适合的场景?
- Redis 支持的 Java 客户端都有哪些?官方推荐用哪一个?
- Redis 集群最大节点个数是多少?
- 一个字符串类型的值能存储最大容量是多少?
- Redis 常见性能问题和解决方案:
- Redis 的回收策略
- redis 过时键的删除策略?
- Redis 的同步机制了解么?
- 是否使用过 Redis 集群,集群的原理是什么?
- Redis 集群方案什么状况下会致使整个集群不可用?
- Redis 如何设置密码及验证密码?
- Redis 集群会有写操做丢失吗?为何?
- 怎么理解 Redis 事务?
- Redis 如何作内存优化?
- 都有哪些办法能够下降 Redis 的内存使用状况呢?
- 一个 Redis 实例最多能存放多少的 keys?List、Set、SortedSet 他们最多能存放多少元素?
- Redis 最适合的场景?
十6、Redis面试专题(下)
- Redis 的全称是什么?
- Redis 主要消耗什么物理资源?
- Redis 有哪几种数据淘汰策略?
- 为何 Redis 须要把全部数据放到内存中?
- Redis 集群方案什么状况下会致使整个集群不可用?
- Redis 和 Redisson 有什么关系?
- 说说 Redis 哈希槽的概念?
- Redis 集群的主从复制模型是怎样的?
- Redis 集群之间是如何复制的?
- Redis 集群会有写操做丢失吗?为何?
- 怎么测试 Redis 的连通性?
- Redis 事务相关的命令有哪几个?
- Redis 回收进程如何工做的?
- 为何要作 Redis 分区?
- 你知道有哪些 Redis 分区实现方案?
- Redis 持久化数据和缓存怎么作扩容?
- Twemproxy 是什么?
- Redis 的内存占用状况怎么样?
- 查看 Redis 使用状况及状态信息用什么命令?
- Redis 是单线程的,如何提升多核 CPU 的利用率?
十7、SpringCloud面试专题
- 为何须要学习Spring Cloud
- 什么是微服务架构?
- 使用 Spring Cloud 有什么优点?
- Spring Cloud 如何实现?
- 服务注册和发现是什么意思?
- 什么是 Hystrix?它如何实现容错?
- 负载平衡的意义什么?
- SpringCloud的缺点?
- SpringBoot和SpringCloud的区别?
- Spring Cloud和SpringBoot版本对应关系
- 使用 Spring Boot 开发分布式微服务时,咱们面临什么问题?
- 什么是Eureka
- Eureka和ZooKeeper均可以提供服务注册与发现的功能,请说说两个的区别!
- 既然Nginx能够实现网关?为何还须要使用Zuul框架?
- 什么是 Netflix Feign?它的优势是什么?
- 什么是 Spring Cloud Bus?咱们须要它吗?
- Ribbon是什么?
- Nginx与Ribbon的区别?
- 什么是断路器
- 谈谈服务雪崩效应
- 服务雪崩效应产生的缘由
- 谈谈服务降级、熔断、服务隔离
- 什么是 Spring Cloud Bus?
- 分布式配置中心的做用?
十9、并发编程面试专题
- 什么是Synchronized?
- 你用过Synchronized吗?原理是什么?
- 如肯定对 象的锁 ?
- 如今有 T一、T二、T3 三个线程,你怎样保证 T2 在 T1 执行完后执行,T3 在 T2 执行完后执行?
- 在 java 中 wait 和 sleep 方法的不一样?
- 用 Java 写代码来解决生产者——消费者问题。
- 什么是原子操做,Java 中的原子操做是什么?
- JVM 对 Java 的 原 生 锁 作 了 哪 些 优 化 ?
- 为 什 么 说 Synchronized 是 一 个 悲 观 锁 ?
- 为 什 么 说 Synchronized 是 非 公 平 锁 ?
- 什 么 是 锁 消 除 和 锁 粗 化 ?
- 乐 观 锁 的 实 现 原 理由 是 什 么 ? 什 么 是 CAS, 它 有 什 么 特 性 ?
- 跟 Synchronized 相 比 , 可 重 入 锁 ReentrantLock 其 实 现原 理 有 什 么 不 同 ?
- 那 么 请 谈 谈 AQS 框 架:
- Synchronized 和 ReentrantLock的 异 同?
- 除 了 ReetrantLock, 你 还 接 触 过 JUC 中 的 哪 些 并 发 工 具 ?
- 如 何 让 Java 的 线 程 彼 此 同 步 ? 你 了 解 过 哪 些 同 步 器 ? 请 分 别介 绍 下 !
- Java 中 的 线 程 池 是 如 何 实 现 的 ?
- 什么是竞争条件?你怎样发现和解决竞争?
- Java 中你怎样唤醒一个阻塞的线程?
- 你在多线程环境中遇到的常见的问题是什么?你是怎么解决它的?
因为篇幅有限,获取完整面试题和答案解析能够转发后关注公众号:麒麟改bug 获取。
二10、开源框架面试专题
- Spring Bean 的生命周期
- Spring IOC 如何实现?
- BeanFactory 和 ApplicationContext 有什么区别?
- 动态代理(cglib 与 JDK)
- Spring AOP 实现原理
- Spring 事务实现方式
- 说说 Spring AOP
- 如何自定义注解实现功能
- Spring MVC 启动流程
- Spring 框架中用到了哪些设计模式
- 原生的 NIO 在 JDK 1.7 版本存在 epoll bug
- Netty 线程模型
- Netty 内部执行流程
二11、ActiveMQ消息中间件面试专题
- 你用过ActiveMQ消息中间件吗?
- ActiveMQ的原理是什么?
- ActiveMQ 服务器宕机怎么办?
- 丢消息了怎么办?
- 解释一下什么叫死信队列
- 持久化消息很是慢怎么办?
- 消息的不均匀消费
- ActiveMQ 中的消息重发时间间隔和重发次数吗?
二12、Java基础面试题
- Java 语言有哪些特色?
- 什么是Java?
- 何为编程?
- Jdk和Jre和JVM的区别
- 什么是字节码?
- 采用字节码的最大好处是什么?
- 应用程序和小程序的主类有何不一样?
- 什么是Java程序的主类?
- Java和C++的区别?
- Java应用程序与小程序之间有那些差异?
- Java有哪些数据类型
- Oracle JDK 和 OpenJDK 的对比
- 用最有效率的方法计算 2 乘以 8:
- Java语言采用何种编码方案?有何特色?
- &和&&的区别?
- Java 有没有 goto?
- fifinal fifinally fifinalize区别?
- this与super的区别
- super关键字的用法
- static的独特之处
- static存在的主要意义
- static注意事项
- 在 Java 中,如何跳出当前的多重嵌套循环
- 面向对象三大特性?
- 面向对象五大基本原则是什么?
- 抽象类和接口的对比:

2七、普通类和抽象类有哪些区别?
2八、成员变量与局部变量的区别有哪些?分别有哪些特色?
2九、构造方法有哪些特性?
30、静态变量和实例变量区别
二十3、Kafka面试专题
一、kafka集群架构图

二、kafka的基础概念是?
三、Partition (分区)有什么用?
四、分片规则
五、Rebalance
六、Rebalace 流程
七、如何避免 Rebalance
八、高性能, 高吞吐、分区的缘由?
九、Kafka 的设计时什么样的呢?
十、Kafka 判断一个节点是否还活着有那两个条件?
十一、数据传输的事物定义有哪三种?
十二、producer 是否直接将数据发送到 broker 的 leader(主节点)?
1三、Kafka 消息是采用 Pull 模式,仍是 Push 模式?
1四、Kafa consumer 是否能够消费指定分区消息?
1五、Kafka 与传统消息系统之间有三个关键区别
1六、Kafka 高效文件存储设计特色:
1七、Kafka 的消费者如何消费数据
1八、消费者负载均衡策略
1九、kafaka 生产数据时数据的分组策略
二十4、memcached面试专题
- 什么是memcached?
- memcached 是怎么工做的?
- memcached优点是啥?
- memcached 和 MySQL 的 query cache 相比,有什么优缺点?
- memcached 和服务器的 local cache(好比 PHP 的 APC、mmap 文件等)相比,有什么优缺点?
- memcached 如何实现冗余机制?
- memcached 的 cache 机制是怎样的?
- 如何将 memcached 中 item 批量导入导出?
- memcached 如何处理容错的?
- 我须要把 memcached 中的 item 批量导出导入,怎么办?
- memcached 对 item 的过时时间有什么限制?
- memcached 能接受的 key 的最大长度是多少?
- 为何单个 item 的大小被限制在 1M byte 以内?
二十5、ElasticSearch面试题
- 说说你对ElasticSearch的理解
- 说说大家公司 es 的集群架构,索引数据大小,分片有多少,以及一些调优手段
- 查询调优
- 设计阶段调优
- elasticsearch 的倒排索引是什么
- 动态索引层面
- elasticsearch 索引数据多了怎么办,如何调优,部署?
- 部署层面
- 详细描述一下 Elasticsearch 索引文档的过程
- elasticsearch 是如何实现 master 选举的
- 详细描述一下 Elasticsearch 搜索的过程?
- lucence 内部结构是什么?
- Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
- 详细描述一下 Elasticsearch 索引文档的过程。
- Elasticsearch是一个高度可伸缩的开源全文搜索和分析引擎。它
- 是否了解字典树?
- 详细描述一下 Elasticsearch 搜索的过程:
- Elasticsearch 在部署时,对 Linux 的设置有哪些优化方法?
二十6、MySQL性能优化的21个最佳实践

- 如何为了查询缓存而优化你的查询?
- 当只要一行数据时使用 LIMIT 1的时候
- EXPLAIN 你的 SELECT 查询
- 为搜索字段建索引
- 千万不要 ORDER BY RAND()
- 在 Join 表的时候使用至关类型的例,并将其索引
- 永远为每张表设置一个 ID
- 使用 ENUM 而不是 VARCHAR
- 避免 SELECT *
- 尽量的使用 NOT NULL
- 从 PROCEDURE ANALYSE() 取得建议
- 如何作到无缓冲的查询?
- 垂直分割
- 拆分大的 DELETE 或 INSERT 语句
- Heap 表是什么?
- Mysql 的技术特色是什么?
- 与 Oracle 相比,Mysql 有什么优点?
- Mysql 服务器默认端口是什么?
- 在 Mysql 中 ENUM 的用法是什么?
- TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上作什么?
- 如何使用 Unix shell 登陆 Mysql?
- MYSQL 数据库服务器性能分析的方法命令有哪些?
- MyISAM Static 和 MyISAM Dynamic 有什么区别?
- 一张表,里面有 ID 自增主键,当 insert 了 17 条记录以后,删除了第 15,16,17 条记录,
再把 Mysql 重启,再 insert 一条记录,这条记录的 ID 是 18 仍是 15 ?
(1)若是表的类型是 MyISAM,那么是 18
由于 MyISAM 表会把自增主键的最大 ID 记录到数据文件里,重启 MySQL 自增主键的最大
ID 也不会丢失
(2)若是表的类型是 InnoDB,那么是 15
InnoDB 表只是把自增主键的最大 ID 记录到内存中,因此重启数据库或者是对表进行
OPTIMIZE 操做,都会致使最大 ID 丢失
因为篇幅有限,获取完整面试题和答案解析能够转发后关注公众号:麒麟改bug 获取。
二十7、SpringMVC面试专题
- 简单介绍下你对Spring MVC的理解?
- Spring MVC的缺点
- Spring MVC 的优势:
- SpringMVC 流程?
- 什么是DispatcherServlet
- 什么是Spring MVC框架的控制器?
- SpringMvc 中函数的返回值是什么?
- SpringMvc 用什么对象从后台向前台传递数据的?
- SpringMvc 怎么和 AJAX 相互调用的?
- 当一个方法向 AJAX 返回特殊对象,譬如 Object,List 等,须要作什么处理?
- 讲下 SpringMvc 的执行流程
- MVC是什么?
- 注解原理是什么
- MVC设计模式的好处有哪些
- SpingMvc中的控制器的注解通常用哪一个,有没有别的注解能够替代?
- Spring MVC经常使用的注解有哪些?
- @ResponseBody注解的做用
- @PathVariable和@RequestParam的区别
- Spring MVC与Struts2区别
- 如何解决POST请求中文乱码问题,GET的又如何处理呢?
二十8、面试必备之乐观锁与悲观锁
- 什么是乐观锁与悲观锁?
- 乐观锁与悲观锁分别是用在哪的?
- 两种锁的使用场景是哪些?
- 乐观锁与悲观锁两种实现方式是?
- CAS 算法
- 乐观锁的优缺点?
- CAS 与 synchronized 的使用情景
- DelayQueue 实例应用
二十9、设计模式面试专题
- 你了解过设计模式吗?
- 你为何要学习设计模式?
- 设计模式的分类有哪些?
- 你是否在你的代码里面使用过任何设计模式?
- 在 Java 中,什么叫观察者设计模式?
- 举一个用 Java 实现的装饰模式(decorator design pattern)?它是做用于对象层次仍是类层次?
- 设计一个 ATM 机,请说出你的设计思路?
- 举例说明什么状况下会更倾向于使用抽象类而不是接口?
- 设计模式的六大原则是什么?分别有哪些思想?优势有哪些?
- 什么是单例?
- 单例模式的优缺点有哪些?
- 单例模式使用注意事项:
- 单例建立方式?主要使用哪些?
三10、java后端面试题
- HashSet 是如何保证不重复的?
- HashMap 是线程安全的吗,为何不是线程安全的?
- List 和 Set 的区别?
- HashMap 1.7 与 1.8 的 区别,说明 1.8 作了哪些优化,如何优化的?
- HashMap 的扩容过程,详细说说!
- 对象的四种引用:
- Java反射机制
- Java获取反射的三种方法,分别是哪些?
- LinkedHashMap 的应用
- wait 和 sleep 的区别?
- 数组在内存中如何分配?
三11、Netty面试专题
- 说说你对Netty的理解?
- BIO的优势是?
- 什么是IO模式?
- I/O 模型有几种?
- 阻塞IO和非阻塞IO的区别是什么?
- IO 多路复用
- Netty 线程模型和 Reactor 模式
- Reactor 多线程模型
- Reactor 单线程模型
- Reactor 主从线程模型
- EventLoop和EventLoopGroup的区别?
- ChannelHandler和ChannelPipeline的区别?
- Netty解码器 Decoder
- Netty 组合编解码器 Codec
- Netty 的特色?
- NIO 的组成?
三12、Nginx面试专题
- 说出你对Nginx 的理解
- 说说你为何要使用Nginx呢?
- 为何Nginx性能这么高?
- 请列举 Nginx 的一些特性:
- 请列举 Nginx 和 Apache 之间的不一样点
- Nginx怎么处理请求的?
- 使用“反向代理服务器的优势是什么?
- 什么是正向代理和反向代理?
- 在 Nginx 中,如何使用未定义的服务器名称来阻止处理请求?
- 请解释 Nginx 服务器上的 Master 和 Worker 进程分别是什么?
- 请解释 ngx_http_upstream_module 的做用是什么?
- 解释如何在 Nginx 中得到当前的时间?
- 解释如何在 Nginx 服务器上添加模块?
- Nginx的优缺点?
- Nginx应用场景?
- Nginx静态资源?
- Nginx虚拟主机怎么配置?
- 如何用Nginx解决前端跨域问题?
- 基于虚拟主机配置域名
- 基于端口的虚拟主机
三十3、多线程面试专题
- 说说你对多线程的理解?
- 多线程有什么做用呢?
- 线程和进程的区别是什么?
- 启动线程方法 start()和 run()有什么区别?
- Java 实现线程有哪几种方式?
- 线程中的 wait()和 sleep()方法有什么区别?
- 怎么终止一个线程?如何优雅地终止线程?
- .一个线程的生命周期有哪几种状态?它们之间如何流转的?
- 如何用 Java 实现阻塞队列
- 用 Java 编程一个会致使死锁的程序,你将怎么解决?
- 用 Java 写代码来解决生产者——消费者问题。
- 什么是原子操做,Java 中的原子操做是什么?
- 什么是竞争条件?你怎样发现和解决竞争?
- Java 中你怎样唤醒一个阻塞的线程?
- 多线程同步有哪几种方法?
- 线程怎样拿到返回结果?
- 什么是死锁?如何避免死锁?
- 怎么控制同一时间只有 3 个线程运行?
- 经常使用的几种线程池并讲讲其中的工做原理
- CyclicBarrier 和 CountDownLatch 的区别?
- 线程池启动线程 submit()和 execute()方法有什么不一样?
- 什么是活锁、饥饿、无锁、死锁?
三十4、数据库面试专题
- 请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
- 在 MySQL 中 ENUM 的用法是什么?
- CHAR 和 VARCHAR 的区别?
- SQL 标准定义的四个隔离级别为?
- MySQL 中使用什么存储引擎?
- TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上作什么?
- 主键和候选键有什么区别?
- 数据库的三范式?
- 在 MySQL 表中容许有几个触发器?
- MySQL 表中容许有多少个 TRIGGERS?
- Redis 实现原理或机制
- Redis 有两种类型分区
三十5、微服务面试专题
- 微服务有哪些框架?
- 先后端分离是如何作的?
- 说说 Dubbo 的实现原理:
- 说说 RPC 的实现原理:
- 微服务架构有哪些优点?
- 微服务有什么特色?
- 什么是凝聚力?
- 什么是 REST / RESTful 以及它的用途是什么?
- 什么是 Idempotence 以及它在哪里使用?
- PACT 在微服务架构中的用途是什么?
- 您对微服务架构中的语义监控有何了解?
- 咱们如何进行跨功能测试?
- Mock 或 Stub 有什么区别?
- Docker 的目的是什么?
- 什么是持续集成(CI)?
- 什么是微服务中的反应性扩展?
以上就是小编分享的35个Java技术栈,分享给到你们,年后冲刺年薪百万!因为篇幅有限,每一个专题面试题只有部分的面试题,下面是整理的合集,分享给到大家。
该资料获取方式:关注公众号:麒麟改bug + 转发后,获取完整面试题和答案解析
最后
篇幅有限,其余内容就不在这里一一展现了,2021金三银四,Java后端必备的【35个专题面试技术栈】,整理不易,欢迎你们一块儿交流,喜欢文章记得关注我点赞哟,感谢支持!重要的事情说三遍,转发+转发+转发,必定要记得转发哦!!!