题目基本覆盖了整个Java后端题,因文章篇幅问题,我这里就不解答了,我已把题目整理成pdf文档,内容很全面,有需要的可以 点击这里 获取资料
话不多说,直接往下看↓ ↓ ↓
一、性能调优面试专栏
1.1、tomcat性能优化整理
- 你这样给tomcat调优
- 如何加大comcat连接数
- 怎样加大tomcat的内存
- Tomcat有几种部署方式
- Tomcat的优化经验
1.2、JVM性能优化整理
- Java类加载过程
- Java内存分配
- 描述一下jVM加载class文件的原理机制?
- GC是什么?为什么要有GC?
- 简述Java垃圾回收机制
- 如何判断一个对象是有存货?(或者GC对象的判定方式)
- 垃圾回收的优点和原理。并考虑2种回收机制。
- 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
1.3、Mysql性能优化整理
- Mysql中有哪几种锁?
- Mysql中有哪些不同的表格?
- 简述在 Mysql 数据库中 MyISAM 和 InnoDB 的区别
- BLOB 和 TEXT 有什么区别?
- Mysql_fetch_array 和 MySQL_fetch_object 的区别是什么?
- Mysql 如何优化 DISTINCT?
- Mysql 有关权限的表都有哪几个?
二、微服务架构面试专栏
2.1、SpringCloud面试整理
- 什么是 springcloud?
- 使用 springcloud 有什么优势?
- 服务注册和发现是什么意思?springcloud如何实现?
- 负载平衡的意义什么?
- 什么是 Hystrix?它如何实现容错?
- 什么是 Hystrix 断路器?我们需要它吗?
- 什么是 Hetflix Feign?它的优点是什么?
- 什么是 Spring Cloud Bus?我们需要它吗?
2.2、SpringBoot面试整理
- 什么是 spring boot?
- spring boot 有哪些优势?
- 什么是 JavaConfig?
- 如何重新加载 spring boot 上的更改,而无需重新启动服务器?
- spring boot 中的监视器是什么?
- 如何在 spring boot 中禁用 Actuator 端点安全性?
2.3、Dubbo面试整理
- Dubbo 中 zookeeper 做注册中心,如果注册中心集群都挂掉,发布者和订阅者之间还能通信么?
- Dubbo 服务负载均衡策略?
- Dubbo 在安全机制方面是如何解决的
- Dubbo 连接注册中心和直连的区别
三、并发编程高级面试专栏
- Synchronized用过吗,其原理是什么?
- 你刚才提到获取对象的锁,这个“锁”到底是什么?如何确定对象的锁?
- 什么是可重入性,为什么说 Synchronized 是可重入锁?
- JVM对 Java 的原生锁做了哪些优化?
- 为什么说 Synchronized 是非公平锁?
- 什么是锁消除和锁粗化?
- 为什么说 Synchronized 是一个悲观锁?乐观锁的实现原理又是什么?什么是 CAS、它有什么特性?
- 乐观锁一定就是好的吗?
- 跟 Synchronized 相比,可重入锁 ReentrantLock 其实现原理有什么不同?
- 那么请谈谈 AQS 框架是怎么回事?
四、开源框架面试题专栏
4.1、Spring面试整理
- 什么是 Spring 框架?Spring 框架有哪些主要模块?
- 使用 Spring框架能带来哪些好处?
- 什么是控制翻转(IOC)?为什么是依赖注入?
- 请解释下 Spring 框架中的 IOC?
- BeanFactory 和 ApplicationContext 有什么区别?
- Spring 有几种配置方式?
- 如何用基于 XML 配置的方式配置 Spring?
- 如何用基于 Java 配置的方式配置 Spring?
- 怎样用注解的方式配置 Spring?
- 请解释 Spring Bean 的生命周期?
- Spring Bean 的作用域之间有什么区别?
4.2、SpringMVC面试整理
- 什么 SpringMVC?
- SpringMVC 的优点:
- SpringMVC 工作原理?
- SpringMVC 流程?
- SpringMVC 的控制器是不是单例模式,如果是,有什么问题,怎么解决?
- 如果你也用过 struts2.简单介绍下 SpringMVC 和 struts2 的区别有哪些?
- SpringMVC 中的控制的注解一般用那个,有没有别的注解可以代替?
- @RequestMapping 注解用在类上面有什么作用?
4.3、MyBatis面试整理
- 什么是 MyBatis?
- 讲下 MyBatis 的缓存
- Mybatis 是如何进行分页的?分页插件的原理是什么?
- 简述 Mybatis 的插件运行原理,以及如何编写一个插件?
- Mybatis 动态 sql 是做什么的?都有哪些动态 sql?能简述一下动态 sql 的执行原理吗?
- Mybatis 能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别?
- 为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
- Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
五、分布式面试专栏
5.1、分布式限流面试整理
5.2.1、ZooKeeper专题
- ZooKeeper 是什么?
- ZooKeeper 提供了什么?
- ZooKeeper 文件系统?
- 四种类型的 znode
- ZooKeeper 通知机制
- ZooKeeper 做了什么?
- ZK 的命名服务[文件系统]
- ZK 的配置管理[文件系统、通知机制]
- ZooKeeper 集群管理[文件系统、通知机制]
- ZooKeeper 分布式锁[文件系统、通知机制]
- ZooKeeper 队列管理[文件系统、通知机制]
5.1.2、Nginx面试专题
- 请解释下什么是 Nginx?
- 请列举 Nginx 的一些特性
- 请解释 Nginx 如何处理 HTTP请求
- 在 Nginx 中,如何使用未定义的服务器名称来阻止处理请求?
- 使用“反向代理服务器”的优点是什么?
5.2、分布式通讯面试整理
5.2.1、RabbitMQ消息中间件面试专题
- RabbitMQ 中的 broker 是指什么? cluster又是指什么?
- 什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据有什么?元数据是如何保存的?元数据在 cluster 中是如何分布的?
- RAM node 和 disk node 的区别?
- RabbitMQ 上的一个 queue 中存放中 message 是否有数量限制?
- vhost 是什么?起什么作用?
- 在单 node 系统和多 node 构成的 cluster 系统中声明 queue、exchange,以及进行 binding 会有什么不同?
5.2.2、Kafka面试专题
- Kafka 的设计时什么样的呢?
- 数据传输的事务定义有哪三种?
- Kafka 的判断一个节点是否还活着有那两个条件?
- producer 是否直接将数据发送到 broker 的 leader(主节点)?
- Kafka consumer 是否可以消费指定分区消息?
- Kafka 消息是采用 Pull 模式,还是 Push 模式?
5.2.3、ActiveMQ消息中间件面试专题
- 什么是 ActiveMQ?
- ActiveMQ 服务器宏机怎么办?
- 丢消息怎么办?
- 持久化消息非常慢
- 消息的不均匀消费
- ActiveMQ 中的消息重发时间间隔和重发次数吗?
5.3、分布式数据库面试整理
5.3.1、redis面试专题
- redis 和 memcached 什么区别?为什么高并发下有时单线程的 redis 比多线程的 memcached 效率要高?
- redis 主从复制如何实现?redis 的集群模式如何实现?redis 的 key 是如何寻址的?
- 使用 redis 如何设计分布式锁?说一下实现思路?使用 zk 可以吗?如何实现?这两种有什么区别?
- 知道 redis 的持久化吗?底层如何实现的?有什么优点缺点?
- redis 过期策略都有哪些?LRU算法知道吗?写一下Java代码实现?
- 缓存穿透、缓存击穿、缓存雪崩解决方案?
- 在选择缓存时,什么时候选择redis,什么时候选择 memcached
5.3.2、MongoDB面试专题
- 你说的 NoSQL 数据库是什么意思?NoSQL 与 RDBMS 直接有什么区别?为什么要使用和不使用 No SQL 数据库?说一说 NoSQL 数据库的几个有点?
- NoSQL数据库有哪些类型?
- MySQL 与 MongoDB 之间最基本的差别是什么?
- 你怎么比较 MongDB,CouchDB 及 CouchBase?
- MongoDB 成为最好 NoSQL 数据库的原因是什么?
- 32位系统上有什么细微差别?
- joumal 回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?
- 分析器在 MongoDB 中的作用是什么?
5.3.3、memcached面试专题
- memcached 是怎么工作的?
- memcached 最大的优势是什么?
- memcached 和 MySQL 的 query cache 相比有什么优缺点?
- memcached 和服务器的 local cache(比如 PHP 的 APC、mmap 文件等)相比,有什么优缺点?
- memcached 的 cache 机制是怎样的?
- memcached 如何处理容错的?
- memcached 的多线程是什么?如何使用它们?
内容很多,因文章篇幅问题,我就不全部展示了,我已把所有题目(带解析)整理成 PDF 分享给大家,另外还有一些电子书籍及架构视频;希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习,也可以关注我一下以后会有更多干货分享。
最后祝大家工作顺利,升职加薪,面试都能通过,offer拿到手软,早日找到心仪的工作~
资料获取方式:QQ群搜索“909-666-042” 备注“51CTO” 即可免费领取
部分资料展示
java高级开发需要资料直接进我的学习交流群:909666042 即可免费领取。
最后,用 Martin Fowler 的一句话作为结尾:「任何傻瓜都能写计算机能理解的代码,优秀的程序员编写人类能够理解的代码。」(Any fool can write code that a computer can understand. Good programmers write code that humans can understand)
原文地址:https://blog.51cto.com/14570694/2479537
时间: 2024-10-07 08:20:27