前言
在过 1 个月即将进入 2023,然而面对今年的大环境而言,跳槽成功的难度比往年高了很多,很明显的感受就是:对于今年的 java 开发朋友跳槽面试,无论一面还是二面,都开始考验一个 Java 程序员的技术功底和基础。对源码解读和核心原理理解也是成了加分项,特别是对 Java 的一些核心基础知识点掌握的不够或者没有体系方向的朋友面试也成了一个苦恼的事情。
今天在这分享目前国内公司 Java 面试常问的问题包括 JVM、常用的算法和数据结构,redis 缓存,分布式,Spring,微服务等。正所谓知己知彼,只有体系知识巩固,面对不断更新的技术才能快速掌握,同时在面试、工作中也更能脱颖而出!
由于篇幅原因,在这答案就不做全部展示了,资料已整理成文档,需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取哦

Java 集合

JVM

并发编程


Spring
-  什么是 Spring 框架?Spring 框架有哪些主要模块? 
-  使用 Spring 框架能带来哪些好处? 
-  什么是控制反转(IOC)?什么是依赖注入? 
-  请解释下 Spring 框架中的 IoC? 
-  BeanFactory 和 ApplicationContext 有什么区别? 
-  Spring 有几种配置方式? 
-  如何用基于 XML 配置的方式配置 Spring? 
-  如何用基于 Java 配置的方式配置 Spring? 
-  怎样用注解的方式配置 Spring? 
-  请解释 Spring Bean 的生命周期? 
-  Spring Bean 的作用域之间有什么区别? 
-  什么是 Spring inner beans? 
-  Spring 框架中的单例 Beans 是线程安全的么? 
-  请举例说明如何在 Spring 中注入一个 Java Collection? 
-  如何向 Spring Bean 中注入一个 Java.util.Properties? 
-  请解释 Spring Bean 的自动装配? 
-  请解释自动装配模式的区别? 
-  如何开启基于注解的自动装配? 
-  请举例解释 @Required 注解? 
-  请举例解释 @Autowired 注解? 
-  构造方法注入和设值注入有什么区别? 
-  Spring 框架中有哪些不同类型的事件? 
-  FileSystemResource 和 ClassPathResource 有何区别? 
-  Spring 框架中都用到了哪些设计模式? 
MyBatis
-  什么是 Mybatis? 
-  Mybaits 的优点: 
-  MyBatis 框架的缺点: 
-  MyBatis 框架适用场合: 
-  MyBatis 与 Hibernate 有哪些不同? 
-  #{}和 ${}的区别是什么? 
-  当实体类中的属性名和表中的字段名不一样 ,怎么办 ? 
-  模糊查询 like 语句该怎么写? 
-  通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗? 
-  Mybatis 是如何进行分页的?分页插件的原理是什么? 
-  Mybatis 是如何将 sql 执行结果封装为目标对象并返回的?都有哪些映射形式? 
-  如何执行批量插入? 
-  如何获取自动生成的(主)键值? 
-  Mybatis 动态 sql 有什么用?执行原理?有哪些动态 sql? 
-  Xml 映射文件中,除了常见的 select|insert|updae|delete 标签之外,还有哪些标签? 
-  Mybatis 的 Xml 映射文件中,不同的 Xml 映射文件,id 是否可以重复? 
-  为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里? 
-  MyBatis 实现一对一有几种方式?具体怎么操作的? 
-  MyBatis 实现一对多有几种方式,怎么操作的? 
-  Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么? 
-  Mybatis 的一级、二级缓存: 
-  什么是 MyBatis 的接口绑定?有哪些实现方式? 
-  使用 MyBatis 的 mapper 接口调用时有哪些要求? 
-  简述 Mybatis 的插件运行原理,以及如何编写一个插件。 
SpringMVC
-  什么是 Spring MVC ?简单介绍下你对 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 的配置文件有哪几种格式?它们有什么区别? 
-  Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的? 
-  开启 Spring Boot 特性有哪几种方式? 
-  Spring Boot 需要独立的容器运行吗? 
-  运行 Spring Boot 有哪几种方式? 
-  Spring Boot 自动配置原理是什么? 
-  pring Boot 2.X 有什么新特性?与 1.X 有什么区别? 
-  如何使用 Spring Boot 实现分页和排序? 
-  如何实现 Spring Boot 应用程序的安全性? 
-  如何集成 Spring Boot 和 ActiveMQ? 
-  什么是 YAML? 
-  Spring Boot 中的监视器是什么? 
-  什么是 Swagger?你用 Spring Boot 实现了它吗? 
-  如何使用 Spring Boot 实现异常处理? 
-  RequestMapping 和 GetMapping 的不同之处在哪里? 
-  Spring Boot 可以兼容老 Spring 项目吗,如何做? 
-  保护 Spring Boot 应用有哪些方法? 
Spring Cloud
-  什么是 Spring Cloud? 
-  使用 Spring Cloud 有什么优势? 
-  服务注册和发现是什么意思?Spring Cloud 如何实现? 
-  负载平衡的意义什么? 
-  什么是 Hystrix?它如何实现容错? 
-  什么是 Hystrix 断路器?我们需要它吗? 
-  什么是 Netflix Feign?它的优点是什么? 
-  什么是 Spring Cloud Bus?我们需要它吗? 
Dubbo
-  为什么要用 Dubbo? 
-  Dubbo 的整体架构设计有哪些分层? 
-  默认使用的是什么通信框架,还有别的选择吗? 
-  服务调用是阻塞的吗? 
-  一般使用什么注册中心?还有别的选择吗? 
-  默认使用什么序列化框架,你知道的还有哪些? 
-  服务提供者能实现失效踢出是什么原理? 
-  服务上线怎么不影响旧版本? 
-  如何解决服务调用链过长的问题? 
-  说说核心的配置有哪些? 
-  Dubbo 推荐用什么协议? 
-  同一个服务多个注册的情况下可以直连某一个服务吗? 
-  画一画服务注册与发现的流程图? 
-  Dubbo 集群容错有几种方案? 
-  Dubbo 使用过程中都遇到了些什么问题? 
-  Dubbo Monitor 实现原理? 
-  Dubbo 用到哪些设计模式? 
-  Dubbo 配置文件是如何加载到 Spring 中的? 
-  Dubbo SPI 和 Java SPI 区别? 
-  Dubbo 支持分布式事务吗? 
-  Dubbo 可以对结果进行缓存吗? 
-  服务上线怎么兼容旧版本? 
-  Dubbo 必须依赖的包有哪些? 
-  Dubbo telnet 命令能做什么? 
-  Dubbo 支持服务降级吗? 
-  Dubbo 如何优雅停机? 
-  Dubbo 和 Dubbox 之间的区别? 
-  Dubbo 和 Spring Cloud 的区别? 
-  你还了解别的分布式框架吗? 
Netty

网络

Redis

Zookeeper

Kafka

RabbitMQ

Redis 缓存

数据库

设计模式
由于篇幅原因,在这就不做全部展示了,资料已整理成文档,需要获取的小伙伴可以直接转发+关注后私信(学习)即可获取哦
全部目录及答案展示,其中数据结构我分开整理了

Java 核心知识体系文档及更多 Jav 进阶知识笔记和视频资料。

更多笔记分享









![【深入理解C++】new/delete和new[]/delete[]探秘](https://img-blog.csdnimg.cn/d6c4f322e9814786af6975c78d1a2e06.png#pic_center)










