2021年最新最全:30W字!千道Java 后端面试大全(值得收藏)
Posted 我是老实人辶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2021年最新最全:30W字!千道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、数据库、数据结构等大量知识点
获取方式:点击此处,即可无偿下载一份!
以上是关于2021年最新最全:30W字!千道Java 后端面试大全(值得收藏)的主要内容,如果未能解决你的问题,请参考以下文章