太赞了!阿里巴巴2021年最新最全500道Java后端面试大全(值得收藏)
进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、美团、滴滴、头条等大厂面试大全其中概括的知识点有:Java基础、spring、springmvc、springboot、springcloud、JVM、Tomcat、dubbo、netty、zookeeper共有500+道面试题
面试题整理十分全面,文末还有答案解析!(文章比较长,耐心看完,让你面试提升一大截!)
获取以下面试专题答案的朋友们请转发此文关注我私信回复“面试资料”即可获取
Java基础
- Java概述
 - 何为编程
 - 什么是Java
 - jdk1.5之后的三大版本
 - JVM、JRE和JDK的关系
 - 什么是跨平台性?原理是什么
 - Java语言有哪些特点
 - 什么是字节码?采用字节码的最大好处是什么
 - 什么是Java程序的主类?应用程序和小程序的主类有何不同?
 - Java应用程序与小程序之间有那些差别?
 - Java和C++的区别
 - Oracle JDK 和 OpenJDK 的对比
 - 基础语法
 - 数据类型
 - Java有哪些数据类型
 - switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上
 - 用最有效率的方法计算 2 乘以 8
 - Math.round(11.5) 等于多少?Math.round(-11.5)等于多少
 - float f=3.4;是否正确
 - short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗
 - 编码
 - Java语言采用何种编码方案?有何特点?
 - 注释
 - 什么Java注释
 - 访问修饰符
 - 访问修饰符 public,private,protected,以及不写(默认)时的区别
 - 运算符
 - &和&&的区别
 - 关键字
 - Java 有没有 goto
 - final 有什么用?
 - final finally finalize区别
 - this关键字的用法
 - super关键字的用法
 - this与super的区别
 - static存在的主要意义
 - static的独特之处
 - static应用场景
 - static注意事项
 - 流程控制语句
 - break ,continue ,return 的区别及作用
 - 在 Java 中,如何跳出当前的多重嵌套循环
 - 面向对象
 - 面向对象概述
 - 面向对象和面向过程的区别
 - 面向对象三大特性
 - 面向对象的特征有哪些方面
 - 什么是多态机制?Java语言是如何实现多态的?
 - 面向对象五大基本原则是什么(可选)
 - 类与接口
 - 抽象类和接口的对比
 - 普通类和抽象类有哪些区别?
 - 抽象类能使用 final 修饰吗?
 - 创建一个对象用什么关键字?对象实例与对象引用有何不同?
 - 变量与方法
 - 成员变量与局部变量的区别有哪些
 - 在Java中定义一个不做事且没有参数的构造方法的作用
 - 在调用子类构造方法之前会先调用父类没有参数的构造方法,其目的是?
 - 一个类的构造方法的作用是什么?若一个类没有声明构造方法,该程序能正确执行吗?为什么?
 - 构造方法有哪些特性?
 - 静态变量和实例变量区别
 - 静态变量与普通变量区别
 - 静态方法和实例方法有何不同?
 - 在一个静态方法内调用一个非静态成员为什么是非法的?
 - 什么是方法的返回值?返回值的作用是什么?
 - 内部类
 - 什么是内部类?
 - 内部类的分类有哪些
 - 静态内部类
 - 成员内部类
 - 局部内部类
 - 匿名内部类
 - 内部类的优点
 - 内部类有哪些应用场景
 - 局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final?
 - 内部类相关,看程序说出运行结果
 - 重写与重载
 - 构造器(constructor)是否可被重写(override)
 - 重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
 - 对象相等判断
 - == 和 equals 的区别是什么
 - hashCode 与 equals (重要)
 - 对象的相等与指向他们的引用相等,两者有什么不同?
 - 值传递
 - 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递
 - 为什么 Java 中只有值传递
 - 值传递和引用传递有什么区别
 - Java包
 - JDK 中常用的包有哪些
 - import java和javax有什么区别
 - IO流
 - java 中 IO 流分为几种?
 - BIO,NIO,AIO 有什么区别?
 - Files的常用方法都有哪些?
 - 反射
 - 什么是反射机制?
 - 反射机制优缺点
 - 反射机制的应用场景有哪些?
 - Java获取反射的三种方法
 - 网络编程
 - 常用API
 - String相关
 - 字符型常量和字符串常量的区别
 - 什么是字符串常量池?
 - String 是最基本的数据类型吗
 - String有哪些特性
 - String为什么是不可变的吗?
 - String真的是不可变的吗?
 - 是否可以继承 String 类
 - String str="i"与 String str=new String("i")一样吗?
 - String s = new String("xyz");创建了几个字符串对象
 - 如何将字符串反转?
 - 数组有没有 length()方法?String 有没有 length()方法
 - String 类的常用方法都有那些?
 - 在使用 HashMap 的时候,用 String 做 key 有什么好处?
 - String和StringBuffer、StringBuilder的区别是什么?String为什么是不可变的
 - Date相关
 - 包装类相关
 - 自动装箱与拆箱
 - int 和 Integer 有什么区别
 - Integer a= 127 与 Integer b = 127相等吗
 - 常用工具类库
 - 单元测试
 - 日志
 
Java基础124道面试答案
JVM
- 说一下 JVM 的主要组成部分及其作用?
 - 说一下 JVM 运行时数据区
 - 说一下堆栈的区别?
 - 队列和栈是什么?有什么区别?
 - 对象的创建
 - 为对象分配内存
 - 处理并发安全问题
 - 对象的访问定位
 - 句柄访问
 - 直接指针
 - 内存溢出异常
 - Java会存在内存泄漏吗?请简单描述垃圾收集器
 - 简述Java垃圾回收机制
 - GC是什么?为什么要GC
 - 垃圾回收的优点和原理。并考虑2种回收机制
 - 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
 - Java 中都有哪些引用类型?
 - 怎么判断对象是否可以被回收?
 - 在Java中,对象什么时候可以被垃圾回收
 - JVM中的永久代中会发生垃圾回收吗
 - 说一下 JVM 有哪些垃圾回收算法?
 - 标记-清除算法
 - 复制算法
 - 标记-整理算法
 - 分代收集算法
 - 说一下 JVM 有哪些垃圾回收器?
 - 详细介绍一下 CMS 垃圾回收器?
 - 新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?
 - 简述分代垃圾回收器是怎么工作的?
 - 简述java内存分配与回收策率以及Minor GC和Major GC
 - 对象优先在 Eden 区分配
 - 大对象直接进入老年代
 - 长期存活对象将进入老年代
 - 简述java类加载机制?
 - 描述一下JVM加载Class文件的原理机制
 - 什么是类加载器,类加载器有哪些?
 - 说一下类装载的执行过程?
 - 什么是双亲委派模型?
 - 说一下 JVM 调优的工具?
 - 常用的 JVM 调优的参数都有哪些?
 
JVM 40道面试答案
Spring
- Spring概述(10)
 - 什么是spring?
 - Spring框架的设计目标,设计理念,和核心是什么
 - Spring的优缺点是什么?
 - Spring有哪些应用场景
 - Spring由哪些模块组成?
 - Spring 框架中都用到了哪些设计模式?
 - 详细讲解一下核心容器(spring context应用上下文) 模块
 - Spring框架中有哪些不同类型的事件
 - Spring 应用程序有哪些不同组件?
 - 使用 Spring 有哪些方式?
 - Spring控制反转(IOC)(13)
 - 什么是Spring IOC 容器?
 - 控制反转(IoC)有什么作用
 - IOC的优点是什么?
 - Spring IoC 的实现机制
 - Spring 的 IoC支持哪些功能
 - BeanFactory 和 ApplicationContext有什么区别?
 - Spring 如何设计容器的,BeanFactory和ApplicationContext的关系详解
 - ApplicationContext通常的实现是什么?
 - 什么是Spring的依赖注入?
 - 依赖注入的基本原则
 - 依赖注入有什么优势
 - 有哪些不同类型的依赖注入实现方式?
 - 构造器依赖注入和 Setter方法注入的区别
 - Spring Beans(19)
 - 什么是Spring beans?
 - 一个 Spring Bean 定义 包含什么?
 - 如何给Spring 容器提供配置元数据?Spring有几种配置方式
 - Spring配置文件包含了哪些信息
 - Spring基于xml注入bean的几种方式
 - 你怎样定义类的作用域?
 - 解释Spring支持的几种bean的作用域
 - Spring框架中的单例bean是线程安全的吗?
 - Spring如何处理线程并发问题?
 - 解释Spring框架中bean的生命周期
 - 哪些是重要的bean生命周期方法? 你能重载它们吗?
 - 什么是Spring的内部bean?什么是Spring inner beans?
 - 在 Spring中如何注入一个java集合?
 - 什么是bean装配?
 - 什么是bean的自动装配?
 - 解释不同方式的自动装配,spring 自动装配 bean 有哪些方式?
 - 使用@Autowired注解自动装配的过程是怎样的?
 - 自动装配有哪些局限性?
 - 你可以在Spring中注入一个null 和一个空字符串吗?
 - Spring注解(8)
 - 什么是基于Java的Spring注解配置? 给一些注解的例子
 - 怎样开启注解装配?
 - @Component, @Controller, @Repository, @Service 有何区别?
 - @Required 注解有什么作用
 - @Autowired 注解有什么作用
 - @Autowired和@Resource之间的区别
 - @Qualifier 注解有什么作用
 - @RequestMapping 注解有什么用?
 - Spring数据访问(14)
 - 解释对象/关系映射集成模块
 - 在Spring框架中如何更有效地使用JDBC?
 - 解释JDBC抽象和DAO模块
 - spring DAO 有什么用?
 - spring JDBC API 中存在哪些类?
 - JdbcTemplate是什么
 - 使用Spring通过什么方式访问Hibernate?使用 Spring 访问 Hibernate 的方法有哪些?
 - 如何通过HibernateDaoSupport将Spring和Hibernate结合起来?
 - Spring支持的事务管理类型, spring 事务实现方式有哪些?
 - Spring事务的实现方式和实现原理
 - 说一下Spring的事务传播行为
 - 说一下 spring 的事务隔离?
 - Spring框架的事务管理有哪些优点?
 - 你更倾向用那种事务管理类型?
 - Spring面向切面编程(AOP)(13)
 - 什么是AOP
 - Spring AOP and AspectJ AOP 有什么区别?AOP 有哪些实现方式?
 - JDK动态代理和CGLIB动态代理的区别
 - 如何理解 Spring 中的代理?
 - 解释一下Spring AOP里面的几个名词
 - Spring在运行时通知对象
 - Spring只支持方法级别的连接点
 - 在Spring AOP 中,关注点和横切关注的区别是什么?在 spring aop 中 concern 和 cross-cutting concern 的不同之处
 - Spring通知有哪些类型?
 - 什么是切面 Aspect?
 - 解释基于XML Schema方式的切面实现
 - 解释基于注解的切面实现
 - 有几种不同类型的自动代理?
 
Spring 80道面试题答案
SpringMVC
- 什么是Spring MVC?简单介绍下你对Spring MVC的理解?
 - Spring MVC的优点
 - Spring MVC的主要组件?
 - 什么是DispatcherServlet
 - 什么是Spring MVC框架的控制器?
 - Spring MVC的控制器是不是单例模式,如果是,有什么问题,怎么解决?
 - 请描述Spring MVC的工作流程?描述一下 DispatcherServlet 的工作流程?
 - MVC是什么?MVC设计模式的好处有哪些
 - 注解原理是什么
 - Spring MVC常用的注解有哪些?
 - SpingMvc中的控制器的注解一般用哪个,有没有别的注解可以替代?
 - @Controller注解的作用
 - @RequestMapping注解的作用
 - @ResponseBody注解的作用
 - @PathVariable和@RequestParam的区别
 - Spring MVC与Struts2区别
 - Spring MVC怎么样设定重定向和转发的?
 - Spring MVC怎么和AJAX相互调用的?
 - 如何解决POST请求中文乱码问题,GET的又如何处理呢?
 - Spring MVC的异常处理?
 - 如果在拦截请求中,我想拦截get方式提交的方法,怎么配置
 - 怎样在方法里面得到Request,或者Session?
 - 如果想在拦截的方法里面得到从前台传入的参数,怎么得到?
 - 如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
 - Spring MVC中函数的返回值是什么?
 - Spring MVC用什么对象从后台向前台传递数据的?
 - 怎么样把ModelMap里面的数据放入Session里面?
 - Spring MVC里面拦截器是怎么写的
 - 介绍一下 WebApplicationContext
 
SpringMVC 30道面试答案
SpringBoot
- 什么是 Spring Boot?
 - Spring Boot 有哪些优点?
 - Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
 - 什么是 JavaConfig?
 - Spring Boot 自动配置原理是什么?
 - 你如何理解 Spring Boot 配置加载顺序?
 - 什么是 YAML?
 - YAML 配置的优势在哪里 ?
 - Spring Boot 是否可以使用 XML 配置 ?
 - spring boot 核心配置文件是什么?bootstrap.properties 和 application.properties 有何区别 ?
 - 什么是 Spring Profiles?
 - 如何在自定义端口上运行 Spring Boot 应用程序?
 - 如何实现 Spring Boot 应用程序的安全性?
 - 比较一下 Spring Security 和 Shiro 各自的优缺点 ?
 - Spring Boot 中如何解决跨域问题 ?
 - 什么是 CSRF 攻击?
 - Spring Boot 中的监视器是什么?
 - 如何在 Spring Boot 中禁用 Actuator 端点安全性?
 - 我们如何监视所有 Spring Boot 微服务?
 - 什么是 WebSockets?
 - 什么是 Spring Data ?
 - 什么是 Spring Batch?
 - 什么是 FreeMarker 模板?
 - 如何集成 Spring Boot 和 ActiveMQ?
 - 什么是 Apache Kafka?
 - 什么是 Swagger?你用 Spring Boot 实现了它吗?
 - 前后端分离,如何维护接口文档 ?
 - 如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?Spring Boot项目如何热部署?
 - 您使用了哪些 starter maven 依赖项?
 - Spring Boot 中的 starter 到底是什么 ?
 - spring-boot-starter-parent 有什么用 ?
 - Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?
 - 运行 Spring Boot 有哪几种方式?
 - Spring Boot 需要独立的容器运行吗?
 - 开启 Spring Boot 特性有哪几种方式?
 - 如何使用 Spring Boot 实现异常处理?
 - 如何使用 Spring Boot 实现分页和排序?
 - 微服务中如何实现 session 共享 ?
 - Spring Boot 中如何实现定时任务 ?
 
SpringBoot 40道面试答案
Spring Cloud
- 为什么需要学习Spring Cloud
 - 什么是Spring Cloud
 - 设计目标与优缺点
 - 设计目标
 - 优缺点
 - Spring Cloud发展前景
 - 整体架构
 - 主要项目
 - Spring Cloud Config
 - Spring Cloud Netflix
 - Spring Cloud Bus
 - Spring Cloud Consul
 - Spring Cloud Security
 - Spring Cloud Sleuth
 - Spring Cloud Stream
 - Spring Cloud Task
 - Spring Cloud Zookeeper
 - Spring Cloud Gateway
 - Spring Cloud OpenFeign
 - Spring Cloud的版本关系
 - Spring Cloud和SpringBoot版本对应关系
 - Spring Cloud和各子项目版本对应关系
 - SpringBoot和SpringCloud的区别?
 - 使用 Spring Boot 开发分布式微服务时,我们面临以下问题
 - 服务注册和发现是什么意思?Spring Cloud 如何实现?
 - Spring Cloud 和dubbo区别?
 - 负载平衡的意义什么?
 - 什么是 Hystrix?它如何实现容错?
 - 什么是 Hystrix 断路器?我们需要它吗?
 - 什么是 Netflix Feign?它的优点是什么?
 - 什么是 Spring Cloud Bus?我们需要它吗?
 - Spring Cloud断路器的作用
 - 什么是Spring Cloud Config?
 - 什么是Spring Cloud Gateway?
 
SpringCloud 34道面试答案
MyBatis
- MyBatis是什么?
 - ORM是什么
 - 为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
 - 传统JDBC开发存在的问题
 - JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?
 - Mybatis优缺点
 - MyBatis框架适用场景
 - Hibernate 和 MyBatis 的区别
 - MyBatis的解析和运行原理
 - MyBatis编程步骤是什么样的?
 - 请说说MyBatis的工作原理
 - MyBatis的功能架构是怎样的
 - MyBatis的框架架构设计是怎么样的
 - Mybatis都有哪些Executor执行器?它们之间的区别是什么?
 - Mybatis中如何指定使用哪一种Executor执行器?
 - Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
 - #{}和${}的区别
 - 模糊查询like语句该怎么写
 - 在mapper中如何传递多个参数
 - Mybatis如何执行批量操作
 - 如何获取生成的主键
 - 当实体类中的属性名和表中的字段名不一样 ,怎么办
 - Mapper 编写有哪几种方式?
 - 什么是MyBatis的接口绑定?有哪些实现方式?
 - 使用MyBatis的mapper接口调用时有哪些要求?
 - 最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗
 - Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
 - 简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?
 - Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
 - Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?
 - Mybatis映射文件中,如果A标签通过include引用了B标签的内容,请问,B标签能否定义在A标签的后面,还是说必须定义在A标签的前面?
 - MyBatis实现一对一,一对多有几种方式,怎么操作的?
 - Mybatis是否可以映射Enum枚举类?
 - Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?
 - Mybatis是如何进行分页的?分页插件的原理是什么?
 - 简述Mybatis的插件运行原理,以及如何编写一个插件。
 - Mybatis的一级、二级缓存
 
Mybatis 面试答案
Redis
- 什么是Redis
 - Redis有哪些优缺点
 - 为什么要用 Redis /为什么要用缓存
 - 为什么要用 Redis 而不用 map/guava 做缓存?
 - Redis为什么这么快
 - Redis有哪些数据类型
 - Redis的应用场景
 - 什么是Redis持久化?
 - Redis 的持久化机制是什么?各自的优缺点?
 - 如何选择合适的持久化方式
 - Redis持久化数据和缓存怎么做扩容?
 - Redis的过期键的删除策略
 - Redis key的过期时间和永久有效分别怎么设置?
 - 我们知道通过expire来设置key 的过期时间,那么对过期的数据怎么处理呢?
 - MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据
 - Redis的内存淘汰策略有哪些
 - Redis主要消耗什么物理资源?
 - Redis的内存用完了会发生什么?
 - Redis如何做内存优化?
 - Redis线程模型
 - 什么是事务?
 - Redis事务的概念
 - Redis事务的三个阶段
 - Redis事务相关命令
 - 事务管理(ACID)概述
 - Redis事务支持隔离性吗
 - Redis事务保证原子性吗,支持回滚吗
 - Redis事务其他实现
 - 哨兵模式
 - 官方Redis Cluster 方案(服务端路由查询)
 - 基于客户端分配
 - 基于代理服务器分片
 - Redis 主从架构
 - Redis集群的主从复制模型是怎样的?
 - 生产环境中的 redis 是怎么部署的?
 - 说说Redis哈希槽的概念?
 - Redis集群会有写操作丢失吗?为什么?
 - Redis集群之间是如何复制的?
 - Redis集群最大节点个数是多少?
 - Redis集群如何选择数据库?
 - Redis是单线程的,如何提高多核CPU的利用率?
 - 为什么要做Redis分区?
 - 你知道有哪些Redis分区实现方案?
 - Redis分区有什么缺点?
 - Redis实现分布式锁
 - 如何解决 Redis 的并发竞争 Key 问题
 - 分布式Redis是前期做还是后期规模上来了再做好?为什么?
 - 什么是 RedLock
 - 缓存雪崩
 - 缓存穿透
 - 缓存击穿
 - 缓存预热
 - 缓存降级
 - 热点数据和冷数据
 - 缓存热点key
 - Redis支持的Java客户端都有哪些?官方推荐用哪个?
 - Redis和Redisson有什么关系?
 - Jedis与Redisson对比有什么优缺点?
 - Redis与Memcached的区别
 - 如何保证缓存与数据库双写时的数据一致性?
 - Redis常见性能问题和解决方案?
 - Redis官方为什么不提供Windows版本?
 - 一个字符串类型的值能存储最大容量是多少?
 - Redis如何做大量数据插入?
 - 假如Redis里面有1亿个key,其中有10w个key是以某个固定的已知的前缀开头的,如果将它们全部找出来?
 - 使用Redis做过异步队列吗,是如何实现的
 - Redis如何实现延时队列
 - Redis回收进程如何工作的?
 - Redis回收使用的是什么算法?
 
Redis 70道面试答案解析
Dubbo
- 为什么要用 Dubbo?
 - Dubbo 是什么?
 - Dubbo 的使用场景有哪些?
 - Dubbo 核心功能有哪些?
 - Dubbo 核心组件有哪些?
 - Dubbo 服务器注册与发现的流程?
 - Dubbo 的整体架构设计有哪些分层?
 - Dubbo Monitor 实现原理?
 - Dubbo 类似的分布式框架还有哪些?
 - Dubbo 和 Spring Cloud 有什么关系?
 - Dubbo 和 Spring Cloud 有什么哪些区别?
 - Dubbo 和 Dubbox 之间的区别?
 - Dubbo 有哪些注册中心?
 - Dubbo 的注册中心集群挂掉,发布者和订阅者之间还能通信么?
 - Dubbo集群提供了哪些负载均衡策略?
 - Dubbo的集群容错方案有哪些?
 - Dubbo 配置文件是如何加载到 Spring 中的?
 - 说说核心的配置有哪些?
 - Dubbo 超时设置有哪些方式?
 - 服务调用超时会怎么样?
 - Dubbo 使用的是什么通信框架?
 - Dubbo 支持哪些协议,它们的优缺点有哪些?
 - Dubbo 用到哪些设计模式?
 - 服务上线怎么兼容旧版本?
 - Dubbo telnet 命令能做什么?
 - Dubbo 支持服务降级吗?
 - Dubbo 如何优雅停机?
 - Dubbo SPI 和 Java SPI 区别?
 - Dubbo 支持分布式事务吗?
 - Dubbo 可以对结果进行缓存吗?
 - Dubbo 必须依赖的包有哪些?
 - Dubbo 支持哪些序列化方式?
 - Dubbo 在安全方面有哪些措施?
 - 服务调用是阻塞的吗?
 - 服务提供者能实现失效踢出是什么原理?
 - 同一个服务多个注册的情况下可以直连某一个服务吗?
 - Dubbo 服务降级,失败重试怎么做?
 - Dubbo 使用过程中都遇到了些什么问题?
 - 为什么要有RPC
 - 什么是RPC
 - PRC架构组件
 - RPC和SOA、SOAP、REST的区别
 - RPC框架需要解决的问题?
 - RPC的实现基础?
 - RPC使用了哪些关键技术?
 - 主流RPC框架有哪些
 - RPC的实现原理架构图
 
Dubbo面试答案
Tomcat
- Tomcat是什么?
 - Tomcat的缺省端口是多少,怎么修改
 - tomcat 有哪几种Connector 运行模式(优化)?
 - Tomcat有几种部署方式?
 - tomcat容器是如何创建servlet类实例?用到了什么原理?
 - Tomcat工作模式
 - Tomcat顶层架构
 - Tomcat顶层架构小结
 - Connector和Container的微妙关系
 - Container架构分析
 - Container如何处理请求的
 
Tomcat面试答案
ZooKeeper
- ZooKeeper 是什么?
 - ZooKeeper 提供了什么?
 - Zookeeper 文件系统
 - Zookeeper 怎么保证主从节点的状态同步?
 - 四种类型的数据节点 Znode
 - Zookeeper Watcher 机制 -- 数据变更通知
 - 客户端注册 Watcher 实现
 - 服务端处理 Watcher 实现
 - 客户端回调 Watcher
 - ACL 权限控制机制
 - Chroot 特性
 - 会话管理
 - 服务器角色
 - Zookeeper 下 Server 工作状态
 - 数据同步
 - zookeeper 是如何保证事务的顺序一致性的?
 - 分布式集群中为什么会有 Master主节点?
 - zk 节点宕机如何处理?
 - zookeeper 负载均衡和 nginx 负载均衡区别
 - Zookeeper 有哪几种几种部署模式?
 - 集群最少要几台机器,集群规则是怎样的?集群中有 3 台服务器,其中一个节点宕机,这个时候 Zookeeper 还可以使用吗?
 - 集群支持动态添加机器吗?
 - Zookeeper 对节点的 watch 监听通知是永久的吗?为什么不是永久的?
 - Zookeeper 的 java 客户端都有哪些?
 - chubby 是什么,和 zookeeper 比你怎么看?
 - 说几个 zookeeper 常用的命令。
 - ZAB 和 Paxos 算法的联系与区别?
 - Zookeeper 的典型应用场景
 - Zookeeper 都有哪些功能?
 - 说一下 Zookeeper 的通知机制?
 - Zookeeper 和 Dubbo 的关系?
 
Zookeeper 面试答案
Netty
- Netty 是什么?
 - Netty 的特点是什么?
 - Netty 的优势有哪些?
 - Netty 的应用场景有哪些?
 - Netty 高性能表现在哪些方面?
 - BIO、NIO和AIO的区别?
 - NIO的组成?
 - Netty的线程模型?
 - TCP 粘包/拆包的原因及解决方法?
 - 什么是 Netty 的零拷贝?
 - Netty 中有哪种重要组件?
 - Netty 发送消息有几种方式?
 - 默认情况 Netty 起多少线程?何时启动?
 - 了解哪几种序列化协议?
 - 如何选择序列化协议?
 - Netty 支持哪些心跳类型设置?
 - Netty 和 Tomcat 的区别?
 - NIOEventLoopGroup源码?
 - JDK原生NIO程序的问题
 - Netty的特点
 - Netty常见使用场景
 - I/O模型
 - 阻塞I/O
 - I/O复用模型
 - 基于buffer
 - 线程模型
 - 事件驱动模型
 - Reactor线程模型
 - Netty线程模型
 - 异步处理
 - Bootstrap、ServerBootstrap
 - Future、ChannelFuture
 - Channel
 - Selector
 - NioEventLoop
 - NioEventLoopGroup
 - ChannelHandler
 - ChannelHandlerContext
 - ChannelPipline
 
Netty 面试答案
面试答案汇总
小编整理Java面试宝典分享给大家复习
Java核心知识283页覆盖了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点
如果需要获取到这个【核心知识点整理】文档的话帮忙转发一下然后再关注我添加VX“MXM9809”得到获取方式吧!
如果需要获取到这个【核心知识点整理】文档的话帮忙转发一下然后再关注我添加VX“MXM9809”得到获取方式吧!
