面试需不需要提前准备?

当然需要!并且越早越好!!!

那些手拿80%offer的20%幸运大佬,你以为真的只是因为“锦鲤好运”?

他们往往在你没关注无意识的时候,开始了解各种面试题了!

这次,资源汇总我们来真的。

在经历一天的吐血整理后,我们终于整合了2020春招备战资源,并且已经按照各个知识点整理划分好,包括Java各大知识点以及586道面试题。话不多说,请直接往下看。

包含的内容模块:

本文分为十七个模块,分别是: Java 基础、Spring/Spring MVC、Spring Boot/Spring Cloud、MyBatis、RabbitMQ、Kafka、Zookeeper、数据库、设计模式、MySQL、Redis、JVM 、并发编程、Java线程池相关问题、Java内存模型相关问题。

共包含 586 道面试题,本文的宗旨是为读者朋友们整理一份详实而又权威的面试清单,下面一起进入主题吧。

本文只列出面试题,(答案)可转发+关注,私信我【面试】即可领取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技术精讲视频等。转发+关注,私信回复“面试”即可获得免费领取方式。