2021Java后端面试全攻略,金三银四,搞定大厂offer

·  阅读 40

前言

面试就是大家身边总是存在各种各样的可能,而自身又具备这样的能力,就忍不住想试一试,尤其是到了年关,是一个好的蓄势并且认真积累的阶段。当然面试套路众多,但对于技术面试来说,主要是考察一个人的技术能力和沟通能力。不同类型的面试官根据自身的理解问的问题也不尽相同,没有规律可循。

**“面试造火箭,工作拧螺丝”首先咱得能拧,才有造火箭的可能啊,**这一年整理很多面试的高频问点也做了解析,今天在这分享给大家!

2021Java后端面试全攻略,金三银四,搞定大厂offer

这些面试题包含哪些内容?

这份面试题包含了 19 个模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 等。

如下图所示:

2021Java后端面试全攻略,金三银四,搞定大厂offer

Java集合相关

2021Java后端面试全攻略,金三银四,搞定大厂offer

  • ArrayList 和 Vector 的区别
  • 说说 ArrayList,Vector, LinkedList 的存储性能和特性
  • 快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么?
  • hashmap 的数据结构
  • HashMap 的工作原理是什么?
  • Hashmap 什么时候进行扩容呢?
  • List、Map、Set 三个接口,存取元素时,各有什么特点?
  • Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是 equals()? 它们
  • 有何区别?
  • 两个对象值相同 (x.equals(y) == true),但却可有不同的 hash code,这句话对不对?
  • heap 和 stack 有什么区别。
  • Java 集合类框架的基本接口有哪些?
  • HashSet 和 TreeSet 有什么区别?
  • HashSet 的底层实现是什么?
  • LinkedHashMap 的实现原理?
  • 为什么集合类没有实现 Cloneable 和 Serializable 接口?
  • 什么是迭代器 (Iterator)?
  • Iterator 和 ListIterator 的区别是什么?
  • 数组 (Array) 和列表 (ArrayList) 有什么区别?什么时候应该使用 Array 而不是 ArrayList?19
  • Java 集合类框架的最佳实践有哪些?
  • Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用 == 还是 equals()?它
  • 们有何区别?

多线程

2021Java后端面试全攻略,金三银四,搞定大厂offer

  • 并行和并发有什么区别?

  • 线程和进程的区别?

  • 守护线程是什么?

  • 创建线程有哪几种方式?

  • 说一下 runnable 和 callable 有什么区别?

  • 线程有哪些状态?

  • sleep() 和 wait() 有什么区别?

  • notify()和 notifyAll()有什么区别?

  • 线程的 run()和 start()有什么区别?

  • 创建线程池有哪几种方式?

  • 线程池都有哪些状态?

  • 线程池中 submit()和 execute()方法有什么区别?

  • 在 java 程序中怎么保证多线程的运行安全?

  • 多线程锁的升级原理是什么?

  • 什么是死锁?

  • 怎么防止死锁?

  • ThreadLocal 是什么?有哪些使用场景?

  • 说一下 synchronized 底层实现原理?

  • synchronized 和 volatile 的区别是什么?

  • synchronized 和 Lock 有什么区别?

  • synchronized 和 ReentrantLock 区别是什么?

  • 说一下 atomic 的原理?

JVM相关

2021Java后端面试全攻略,金三银四,搞定大厂offer

  • JDK、 JRE、JVM 的关系是什么?
  • JVM 的内存模型以及分区情况和作用
  • JVM 对象创建步骤流程是什么?
  • 垃圾回收算法有几种类型? 他们对应的优缺点又是什么?
  • 简单介绍一下什么是类加载机制?
  • 类的加载过程是什么?简单描述一下每个步骤
  • JVM 预定义的类加载器有哪几种?分别什么作用?
  • 什么是双亲委派模式?有什么作用?
  • 介绍一下 JVM 中垃圾收集器有哪些? 他们特点分别是什么?
  • 什么是 Class 文件? Class 文件主要的信息结构有哪些?
  • 对象“对象已死” 是什么概念?
  • JVM 数据运行区,哪些会造成 OOM 的情况?
  • 详细介绍一下对象在分带内存区域的分配过程?
  • G1 与 CMS 两个垃圾收集器的对比
  • 线上常用的 JVM 参数有哪些?
  • 对象什么时候进入老年代?
  • 什么是内存溢出, 内存泄露? 他们的区别是什么?
  • 引起类加载操作的行为有哪些?
  • 介绍一下 JVM 提供的常用工具
  • Full GC 、 Major GC 、Minor GC 之间区别?
  • 什么时候触发 Full GC ?
  • 什么情况下会出现栈溢出
  • 说一下强引用、软引用、弱引用、虚引用以及他们之间和 gc 的关系

Mybatis

2021Java后端面试全攻略,金三银四,搞定大厂offer

  • 什么是Mybatis?

  • Mybaits的优点

  • MyBatis框架的缺点

  • MyBatis框架适用场合

  • MyBatis与Hibernate有哪些不同?

  • #Q和$0的区别是什么?

  • 当实体类中的属性名和表中的字段名不一样,怎么办?

  • 模糊查询like语句该怎么写?

  • 通常一个Xm|映射文件,都会写-个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?

  • Mybatis是如何进行分页的?分页插件的原理是什么?

  • Mybatis是如何将sq|执行结果封装为目标对象并返回的?都有哪些映射形式?

  • 如何执行批量插入?

  • 如何获取自动生成的(主)键值?

  • 在mapper中如何传递多个参数?

  • Mybatis动态sq|有什么用?执行原理?有哪些动态sq|?

  • Xm|映射文件中,除了常见的selectlinsertlupdae|delete标签之外,还有为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?

  • 一对一、一对多的关联查询?

  • MyBatis实现一对一有几种方式?具体怎么操作的?

  • MyBatis实现-对多有几种方式,怎么操作的?

  • Mybatis:是否支持延迟加载?如果支持,它的实现原理是什么?

  • Mybatis的一级、二级缓存

  • 什么是MyBatis的接口绑定?有哪些实现方式?

  • 使用MyBatis的mapper接口调用时有哪些要求?

  • Mapper编写有哪几种方式?

  • 简述Mybatis的插件运行原理,以及如何编写一个插件。

2021Java后端面试全攻略,金三银四,搞定大厂offer

Dubbo

2021Java后端面试全攻略,金三银四,搞定大厂offer

  • 为什么要用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的区别?
  • 你还了解别的分布式框架吗?

MySQL

2021Java后端面试全攻略,金三银四,搞定大厂offer

  • MySQL中有哪几种锁?
  • MySQL中有哪些不同的表格?
  • 简述在MySQL数据库中MyISAM和InnoDB的区别
  • MySQL中InnoDB支持的四种事务隔离级别名称,以及逐级之间的区别?
  • CHAR和VARCHAR的区别?
  • 主键和候选键有什么区别?
  • myisamchk是用来做什么的?
  • 如果一个表有一-列定义为TIMESTAMP, 将发生什么?
  • 你怎么看到为表格定义的所有索引?
  • LIKE声明中的%和_是什么意思?
  • 列对比运算符是什么?
  • BLOB和TEXT有什么区别?
  • MySQL_ fetch array和MySQL fetch _object的区别是什么?
  • MyISAM表格将在哪里存储,并且还提供其存储格式?
  • MySQL如何优化DISTINCT?
  • 如何显示前50行?
  • 可以使用多少列创建索引?
  • NOW ()和CURRENT DATE () 有什么区别?
  • 什么是非标准字符串类型?
  • 什么是通用SQL函数?
  • MySQL支持事务吗?
  • MySQL里记录货币用什么字段类型好
  • MySQL有关权限的表都有哪几个?
  • 列的字符串类型可以是什么?
  • MySQL数据库作发布系统的存储,-天五万条以上的增量,预计运维三年怎么优化?
  • 锁的优化策略
  • 索引的底层实现原理和优化
  • 什么情况下设置了索引但无法使用
  • 实践中如何优化MySQL
  • 优化数据库的方法
  • 简单描述MySQL中,索引.主键,唯一索引.联合索引的区别,对数据库的性能有什么影响
  • 数据库中的事务是什么?
  • SQL注入漏洞产生的原因?如何防止?
  • 为表中得字段选择合适得数据类型
  • 存储时期
  • 对于关系型数据库而言.索引是相当重要的概念,请回答有关索引的几个问题
  • 解释MySQL外连接、内连接与自连接的区别
  • Myq|中的事务回滚机制概述
  • ...............

Spring Boot

2021Java后端面试全攻略,金三银四,搞定大厂offer

  • 什么是Spring Boot?
  • Spring Boot有哪些优点?
  • 什么是JavaConfig?
  • 如何重新加载Spring Boot上的更改。而无需重新启动服务器?
  • Spring Boot中的监视器是什么?
  • 如何在Spring Boot中禁用Actuator端点安全性?
  • 如何在自定义端口上运行Spring Boot应用程序?
  • 什么是YAML?
  • 如何实现Spring Boot应用程序的安全性?
  • 如何集成Spring Boot和ActiveMQ?
  • 如何使用Spring Boot实现分页和排序?
  • 什么是Swagger?你用Spring Boot实现了它吗?
  • 什么是Spring Profiles?
  • 什么是Spring Batch?
  • 什么是FreeMarker模板?
  • 如何使用Spring Boot实现异常处理?
  • 您使用了哪些starter maven依赖项?
  • 什么是CSRF攻击?
  • 什么是WebSockets?
  • 什么是AOP?
  • 什么是Apache Kafka?
  • 我们如何监视所有Spring Boot微服务?

SpringCloud

2021Java后端面试全攻略,金三银四,搞定大厂offer

  • 什么是Spring Cloud?
  • 使用Spring Cloud有什么优势?
  • 服务注册和发现是什么意思? Spring Cloud如何实现?
  • 负载平衡的意义什么?
  • 什么是Hystrix?它如何实现容错?
  • 什么是Hystrix断路器?我们需要它吗?
  • 什么是Netflix Feign?它的优点是什么?
  • 什么是Spring Cloud Bus?我们需要它吗?

由于文案过于长,在此就不一一介绍了,每个专题面试题只有部分的面试题,下面是整理的合集。 料获取方式:Java面试宝典PDF完整版

2021Java后端面试全攻略,金三银四,搞定大厂offer

最后

篇幅有限,其他内容就不在这里一一展示了,Java后端开发面试总结,整理不易,喜欢文章记得关注我点赞哟,感谢支持!

分类:
后端
标签:
分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改