文章目录
面试需不需要提前准备?
当然需要!并且越早越好!!!
那些手拿 80%offer 的 20%幸运大佬,你以为真的只是因为“锦鲤好运”?
他们往往在你没关注无意识的时候,开始了解各种面试题了!
这次,资源汇总我们来真的。
在经历一天的吐血整理后,我们终于整合了 2022 秋招备战资源,并且已经按照各个知识点整理划分好,包括 Java 各大知识点以及 586 道面试题。话不多说,请直接往下看。
包含的内容模块:
本文分为十七个模块,分别是: Java 基础、Spring/Spring MVC、Spring Boot/Spring Cloud、MyBatis、RabbitMQ、Kafka、Zookeeper、数据库、设计模式、MySQL、Redis、JVM 、并发编程、Java 线程池相关问题、Java 内存模型相关问题。
共包含 586 道面试题,本文的宗旨是为读者朋友们整理一份详实而又权威的面试清单,下面一起进入主题吧。
Java 集合
JVM
- Java 类加载过程?
- 描述一下 JVM 加载 Class 文件的原理机制?
- Java 内存分配。
- GC 是什么? 为什么要有 GC?
- 简述 Java 垃圾回收机制。
- 如何判断一个对象是否存活? (或者 GC 对象的判定方法)
- 垃圾回收的优点和原理。并考虑 2 种回收机制。
- 垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收
- Java 中会存在内存泄漏吗,请简单描述。
- 深拷贝和浅拷贝。
- System.gc0 和 Runtime.gc0 会做什么事情?
- finalize0 方法什么时候被调用?析构函数(finalization)的目的是什么?
- 如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?
- 什么是分布式垃圾回收(DGC) ?它是如何工作的?
- 串行(serial) 收集器和吞吐量(throughput) 收集器的区别是什么?
- 在 Java 中,对象什么时候可以被垃圾回收?
- 简述 Java 内存分配与回收策率以及 Minor GC 和 Major GC。
- JVM 的永久代中会发生垃圾回收么?
- Java 中垃圾收集的方法有哪些?
- 什么是类加载器,类加载器有哪些?
- 类加载器双亲委派模型机制?
并发编程
Java 线程池相关问题
Java 内存模型相关问题
Spring
- 什么是 Spring 框架?Spring 框架有哪些主要模块?
- 使用 Spring 框架能带来哪些好处?
- 什么是控制反转(I0C)?什么是依赖注入?
- 请解释下 Spring 框架中的 loC?
- BeanFactory 和 ApplicationContext 有什么区别?
- Spring 有几种配置方式?
- 如何用基于 XML 配置的方式配置 Spring?
- 如何用基于 Java 配置的方式配置 Spring?
- 怎样用注解的方式配置 Spring?
- 请解释 SpringBean 的生命周期?
- Spring Bean 的作用域之间有什么区别?
- 什么是 Spring inner beans?
- Spring 框架中的单例 Beans 是线程安全的么?
- 请举例说明如何在 Spring 中注入一个 Java Collection?
- 如何向 Spring Bean 中注入一个 Java.util.Properties?
- 请解释 Spring Bean 的自动装配?
- 请解释自动装配模式的区别?
- 如何开启基于注解的自动装配?
- 请举例解释 @ Required 注解?
- 请举例解释 @ Autowired 注解?
- 构造方法注入和设值注入有什么区别?
- Spring 框架中有哪些不同类型的事件?
- FileSystemResource 和 ClassPathResource 有何区别?
- Spring 框架中都用到了哪些设计模式?
MyBatis
- Mybaits 的优点
- MyBatis 框架的缺点
- MyBatis 框架适用场合
- MyBatis 与 Hibernate 有哪些不同?
- #{}和 ${}的区别是什么?
- 当实体类中的属性名和表中的字段名不一样,怎么办?
- 模糊查询 like 语句该怎么军
- 通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什? Dao 接口里的方法,参数不同时,方法能重载吗?
- Mybatis 是如何进行分页的?分页插件的原理是什么?
- Mybatis 是如何将 sq|执行结果封装为目标对象并返回的?都有哪些映射形式?
- 如何执行批量插入?
- 如何获取自动生成的(主)键值?
- Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sq|?
- Xml 映射文件中,除了常见的 selectlinsert|updae|delete 标签之外,还有哪些标签?
- Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复?
- 为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?
- MyBatis 实现一对一有几种方式?具体怎么操作的?
- MyBatis 实现一对多有几种方式,怎么操作的?
- Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
- 什么是 MyBatis 的接口绑定?有哪些实现方式?
SpringMVC
- 什么是 SpringMVC?简单介绍下你对 springMVC 的理解…
- SpringMVC 的流程?
- Springmvc 的优点:
- Spring MVC 的主要组件?
- springMVC 和 struts2 的区别有哪些?.
- SpringMVC 怎么样设定重定向和转发的?
- SpringMvc 怎么和 AJAX 相互调用的?
- 如何解决 POST 请求中文乱码问题,GET 的又如何处理呢?
- Spring MVC 的异常处理?
- SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决? …
- SpringMVC 常用的注解有哪些?
- SpingMvc 中的控制器的注解一般用那个,有没有别的注解可以替代?
- 如果在拦截请求中,我想拦截 get 方式提交的方法,怎么配置?
- 怎样在方法里面得到 Request, 或者 Session?
- 如果想在拦截的方法里面得到从前台传入的参数,怎么得到?
- 如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象?
- SpringMvc 中函数的返回值是什么?
- SpringMvc 用什么对象从后台向前台传递数据的?
- 怎么样把 ModelMap 里面的数据放入 Session 里面?
- SpringMvc 里面拦截器是怎么写的:
- 注解原理:
Spring Boot
- 什么是 Spring Boot?
- Spring Boot 有哪些优点?
- Spring Boot 的核心配置文件有哪几个?它们的区别是什么? .
- Spring Boot 的配置文件有哪几种格式?它们有什么区别?
- SpringBoot 的核心注解是哪个?它主要由哪几个注解组成的
- 开启 Spring Boot 特性有哪几种方式?
- SpringBoot 需要独立的容器运行吗?
- 运行 Spring Boot 有哪几种方式?
- Spring Boot 自动配置原理是什么?
- Spring Boot2.X 有什么新特性?与 1.X 有什么区别?
- 如何使用 Spring Boot 实现分页和排序?
- 如何实现 Spring Boot 应用程序的安全性?
- 如何集成 Spring Boot 和 ActiveMQ?
- 什么是 YAML?
- Spring Boot 中的监视器是什么?
- 什么是 Swagger? 你用 Spring Boot 实现了它吗?
- 如何使用 Spring Boot 实现异常处理?
- RequestMapping 和 GetMapping 的不同之处在哪里?
Spring Cloud
Dubbo
- 为什么要用 Dubbo?
- Dubbo 的整体架构设计有哪些分层?
- 默认使用的是什么通信框架,还有别的选择吗?
- 服务调用是阻塞的吗?
- 般使用什么注册中心?还有别的选择吗?
- 默认使用什么序列化框架,你知道的还有哪些?
- 服务提供者能实现失效踢出是什么原理?
- 服务上线怎么不影响旧版本?
- 如何解决服务调用链过长的问题?
- 说说核心的配置有哪些?
- Dubbo 推荐用什么协议?
- 同一个服务多个注册的情况下可以直连某一个服务吗?
- 画一画服务注册与发现的流程图?
- Dubbo 集群容错有几种方案?
- Dubbo 服务降级,失败重试怎么做?
- Dubbo 使用过程中都遇到了些什么问题?
- Dubbo Monitor 实现原理?
- Dubbo 用到哪些设计模式?
- Dubbo 配置文件是如何加载到 Spring 中的?
- Dubbo SPI 和 Java SPI 区别?
- Dubbo 支持分布式事务吗?
- Dubbo 可以对结果进行缓存吗?
- 服务上线怎么兼容旧版本?
- Dubbo 必须依赖的包有哪些?
- Dubbo telnet 命令能做什么?
- Dubbo 支持服务降级吗?
- Dubbo 如何优雅停机?
- Dubbo 和 Dubbox 之间的区别?
Netty
- NIO 的组成?
- Netty 的特点?
- Netty 的线程模型?
- TCP 粘包/拆包的原因及解决方法?
- 了解哪几种序列化协议?
- 如何选择序列化协议?
- Netty 的零拷贝实现?
- Netty 的高性能表现在哪些方面?
- NIOEventLoopGroup 源码?
网络
- 网络 7 层架构
- TCP/IP 原理.
- TCP 三次握手/四次挥手…
- 选项:最常见的可选字段是最长报文大小,又称为 MSS(Maximum SegmentSize)。每个连接方通常都在通信的第一个报文段(为建立连接而设置 SYN 标志的那个段)中指明这个选项,它指明本端所能接收的最大长度的报文段。选项长度不一定是 32 位字的整数倍,所以要加填充位,使得报头长度成为字数…
- 数据: TCP 报文段中的数据部分是可选的。在一一个连接建立和一个连接终止时,双方交换的报文段仅有 TCP 首部。如果一方没有数据要发送,也使用没有任何数据的首部来确认收到的数据。在
- 处理超时的许多情况中,也会发送不带任何数据的报文段。
- 三次握手
- 四次挥手.
- HTTP 原理.
- 传输流程.
- HTTP 状态.
- HTTPS
- CDN 原理
Zookeeper
- ZooKeeper 是什么?
- ZooKeeper 提供了什么?
- Zookeeper 文件系统…
- 四种类型的 znode.
- Zookeeper 通知机制.
- Zookeeper 做了什么?
- zk 的命名服务(文件系统)
- zk 的配置管理(文件系统、通知机制)
- Zookeeper 集群管理(文件系统、通知机制)
- Zookeeper 分布式锁(文件系统、通知机制)
- 获取分布式锁的流程.
- Zookeeper 队列管理(文件系统、通知机制)
- Zookeeper 数据复制.
- Zookeeper 工作原理.
- zookeeper 是如何保证事务的顺序-致性的?
- Zookeeper 下 Server 工作状态.
Kafka
- Kafka 数据存储设计.
- 生产者设计.
- 消费者设计.
RabbitMQ
MongoDB
Redis 缓存
- 什么是 redis?
- Reids 的特点.
- Redis 支持的数据类型
- Redis 是单进程单线程的
- 虚拟内存
- 分布式
- 读写分离模型!
- 数据分片模型
- Redis 的回收策略.
- 使用 Redis 有哪些好处?
- redis 相比 memcached 有哪些优势?
- redis 常见性能问题和解决方案:
- MySQL 里有 2000w 数据, redis 中只存 20w 的数据,如何保证 redis 中的数据都是热点数据
- Memcache 与 Redis 的区别都有哪些?
- Redis 常见的性能问题都有哪些?如何解决?
数据库
设计模式
最新整理的 Java 技术干货文档资料:【Java 核心知识点整理及 586 道面试题】涵盖 30 个 Java 核心技术详解,JVM,Redis,Nginx,Spring Boot,Spring Cloud,Kafka,并发编程,Tomcat,MyBatis,BAT 面试题,Java 技术精讲视频等。