前言
秋招已经结束了,不知道各位有没有拿到自己心仪的offer?最近有不少粉丝去阿里巴巴面试了,回来之后我整理成了一份手册java面试时常用到的面试题(附答案)那么今天分享给大家,祝愿大家都能找到满意的工作。

JVM篇
-  说说Java对象创建过程知道类的生命周期吗?简述Java的对象结构 
-  如何判断对象可以被回收? 
-  JVM的永久代中会发生垃圾回收么?你知道哪些垃圾收集算法 
-  调优命令有哪些? 
-  常见调优工具有哪些 

多线程&并发篇
-  常用的线程池有哪些? 
-  简述一下你对线程池的理解 
-  Java程序是如何执行的锁的优化机制了解吗? 
-  说说进程和线程的区别? 
-  产生死锁的四个必要条件? 
-  如何避免死锁? 
-  线程池核心线程数怎么设置呢? 

Spring篇
-  说说你对Spring的IOC是怎么理解的? 
-  解释一下spring bean的生命周期 
-  解释Spring支持的几种bean的作用域? 
-  Spring基于xml注入bean的几种方式? 
-  Spring框架中都用到了哪些设计模式? 

MyBatis篇
-  什么是MyBatis 
-  说说MyBatis的优点和缺点#科和$的区别是什么? 
-  当实体类中的属性名和表中的字段名不一样,怎么办?Mybatis是如何进行分页的? 
-  分页插件的原理是什么? 

SpringBoot篇
-  你如何理解Spring Boot中的Starters? 
-  springboot常用的starter有哪些 
-  SpringBoot 实现热部署有哪几种方式? 
-  如何理解Spring Boot 配置加载顺序? 
-  Spring Boot的核心配置文件有哪几个?它们的区别是什么?、 
-  如何集成Spring Boot和ActiveMQ? 

MySQL篇
-  什么时候不要使用索引?说说什么是 MVCC? 
-  MVCC可以为数据库解决什么问题?说说MVCC的实现原理 
-  MySQL事务隔离级别? 
-  请说说MySQL 数据库的锁?说说什么是锁升级? 
-  说说悲观锁和乐观锁 

SpringCloud篇
-  什么是Hystrix?它如何实现容错? 
-  什么是Hystrix断路器? 
-  我们需要它吗?说说RPC的实现原理 
-  eureka自我保护机制是什么?什么是Ribbon? 
-  什么是feigin?它的优点是什么?Ribbon和Feign的区别? 

Dubbo篇
-  怎么实现动态感知服务下线的呢?Dubbo负载均衡策略? 
-  Dubbo容错策略 
-  Dubbo动态代理策略有哪些? 
-  说说Dubbo 与Spring Cloud的区别?、Zookeeper和Dubbo的关系? 

Nginx篇
-  简述一下什么是Nginx,它有什么优势和功能? 
-  Nginx是如何处理一个HTTP请求的呢? 
-  列举一些Nginx的特性 
-  请列举Nginx和Apache之间的不同点 

Zookeeper篇
-  在Zookeeper中Zxid是什么,有什么作用? 
-  讲解一下ZooKeeper的持久化机制 
-  Zookeeper选举中投票信息的五元组是什么? 
-  说说Zookeeper中的脑裂? 
-  Zookeeper脑裂是什么原因导致的? 
-  Zookeeper 是如何解决脑裂问题的? 
-  说说Zookeeper的 CAP问题上做的取舍? 
-  watch监听为什么是一次性的? 

Redis篇
-  说说Redis的线程模型 
-  为什么Redis需要把所有数据放到内存中?Redis 的同步机制了解是什么? 
-  pipeline有什么好处,为什么要用pipeline?说一下Redis有什么优点和缺点 
-  Redis缓存刷新策略有哪些? 
-  Redis持久化方式有哪些?以及有什么区别? 

分布式篇
-  什么是三阶段提交?什么是补偿事务? 
-  消息队列是怎么实现的? 
-  那你说说Sagas事务模型,分布式ID生成有几种方案?, 
-  幂等解决方法有哪些?, 
-  常见负载均衡算法有哪些?你知道哪些限流算法? 

网络篇
-  说说TCP与UDP的区别,以及各自的优缺点说一下HTTP和HTTPS的区别 
-  说说HTTP、TCP、Socket的关系是什么?说一下HTTP的长连接与短连接的区别 
-  TCP为什么要三次握手,两次不行吗?为什么? 
-  说一下TCP粘包是怎么产生的?怎么解决粘包问题的? 

设计模式
-  说说工厂模式抽象工厂模式装饰器模式是什么 
-  代理模式和装饰器模式有什么区别?模板方法模式 
-  知道享元模式吗? 
-  享元模式和单例模式的区别? 

Git篇
-  在Git中,你如何还原已经 push并公开的提交?git pull和git fetch有什么区别? 
-  git中的"staging area"或"index"是什么?什么是 git stash? 
-  什么是git stash drop? 
-  如何找到特定提交中已更改的文件列表?git config的功能是什么? 

由于文章限制需要的小伙伴关注公众号:Java收藏夹, 回复关键字即可获取




![[本人毕业设计] 别踩白块_计算机科学与技术_前端H5游戏毕设](https://img-blog.csdnimg.cn/42bb197631804ac5b29d1e2cc966f54f.png)











![[附源码]计算机毕业设计JAVA音乐网站](https://img-blog.csdnimg.cn/3a7a6d483e2a4ec69776c32766f0e9d3.png)


