【备战秋招】2022年Java后端面试题,查缺补漏,啃完16套专题技术栈

2023-11-25 14:20

本文主要是介绍【备战秋招】2022年Java后端面试题,查缺补漏,啃完16套专题技术栈,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

小编分享的这份2022年Java秋招备战面试题总计有1000多道面试题,包含了MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Java 并发编程、Java基础、Spring、微服务、Linux、Spring Boot 、Spring Cloud、RabbitMQ、kafka等16个专题技术点,都是小编在今年金三银四总结出来的面试真题,已经有很多粉丝靠这份PDF拿下众多大厂的offer,今天在这里总结分享给到大家!

分享面试题之前先给大家看一份7面阿里,终获Offer,定级P6+的优秀面经吧

前言

这次去阿里面试的是我老东家的好朋友,我们之前都是一个项目组的,一起吃饭,一起洗脚,一起。。。他们公司最近也裁员了,不过他是裁员前去的阿里,不知道谁捞到他简历了,莫名就走了流程,他莫名的就面了7轮过了。他想着行情这么不好,要不就去了,去了之后,他们公司就裁员了。。。总之今年大环境真的很差,大家都时刻做好准备,我朋友简历上是写了精通dubbo的源码,所以你们会发现,面试中dubbo的问题很多,他面经写得算是比较简单,但是真实问的过程肯定会扣肯定细节。

正文

面试总共花费20天左右,包含4轮电话面试、1轮笔试、1轮主管视频面试、1轮hr视频面试

第一轮

电话面试(基础知识为主,约2小时):

1,先自我介绍,包含日常工作

2,基础知识

1)多线程(问了父子线程怎么共享数据)、lock和sync区别(问HashMap1.7、1.8区别时带出)、AQS原理(执行过程源码,入队出队的细节,源码细节)、CountDownLatch和CyclicBarrier的区别是什么源码级别、volatile从指令重排序,内存屏障,聊到总线风暴)所占比重较大

2)数据库(mysql索引(聚集索引、非聚集索引、索引结构(顺带会问各种树的特性)、执行计划、count1*区别、举例优化sql、MVCC和事务隔离级别的关系、间隙锁、行锁(和多线程混合问的,乐观锁悲观锁等)、唯一索引和普通索引的区别聊到了changeBuffer,聊了页分裂合页合并)比重较大

3)jvm调优(可达性分析算法中根节点有哪些、cms和G1区别、怎样GC调优、怎样排查CPU彪高、内存彪高、逃逸分析)

4)redis数据结构、跳跃表、redis qps能上多少,怎么知道的、sentinel和cluster区别和各自适用场景、redis cluster集群同步过程、redis单线程为什么快、多大叫大key、热key产生原因和后果以及怎么解决、本地缓存需要高时效性怎么办.....

5)spring的作用、spring循环依赖怎么解决(说出三级缓存源码细节)、springaop原理(动态代理)、spring bean生命周期(源码细节,以及各个位置的设计思路,有什么可扩展的)

6)dubbo服务暴露和引用过程,负载均衡策略,容错机制在哪里实现的源码

7)项目中碰到的问题。

8)为什么换工作,如果通过会直接说有笔试题,和你确认笔试时间。

第二轮

笔试两道题,第一题写代码,第二题写技术方案,以查询为主,考察锁粒度、时间粒度上的细节点。

第三轮

电话面试(解决方案为主,约1.5个小时)

1,自我介绍、项目介绍2,说到缓存穿透,让我设计一个防止缓存穿透的解决方案,简单的就是存null值,但肯定会深究,可以结合布隆过滤器,设计分布式系统,里面又会问到流量分发到具体过滤器服务的方式,比如一致性hash算法,怎么调用?比如dubbo直连、等等细节会边说边问。

3,有没有做限流,设计一个侵入性最小的限流服务。

4,项目中碰到的问题,最好说框架本身问题,能提现个人能力,也避免问题太低级被面试官看low,刚好之前有发现一个dubbo的bug,所以这问题应该回答的还可以。

5,为什么换工作,每轮都会问,这个得想好。

第四轮

电话面试(项目为主,40分钟,应该是交叉面,问的不算多)

1,介绍最熟悉的项目,业务上有没有什么优化点;和同行业其他公司的差距和优势(估计是P7的标准问题吧。。。我是没咋说好)

2,dubbo服务调用过程(说着说着说到服务暴露和引用上面,他直接说这个之前问过了。。不用重复说,所以面试应该有记录面试问题)

3,NIO、BIO区别,NIO解决了什么问题,Netty线程模型(源码拷问)。

4,MQ相关(RocketMQ、kafaka奇怪的是你写啥面试官问啥,面试官啥都会,技术广度深度令人发指)第五轮电话面试(这位面试官比较较真,什么问题都会问具体数值,但和他挺聊得来的,向他请教阿里那边方案也会耐心指导,1.5小时)

1,项目介绍

2,听到说做了限流,限流标准(并发数? qps?并发数和qps关系?说出了5种限流方案和对应算法原理)

3,dubbo调用端怎么在jvm中生成对应服务?dubbo服务端和调用端超时时间设置和区别、dubbo长连接。

3,mysql行锁最大并发数?(秒杀项目指出)

4,设计秒杀系统,我说的异步的方式,会问怎么优化?改为了同步的方式,异步和同步区别? 然后我也问了阿里那边

5,碰到哪些技术难点?怎么解决?有没有参考其他大厂?其他大厂方案什么样的?有没有关注阿里这边最新的技术?

6,刚刚的秒杀系统,会涉及到多个库表的更新,分布式事务怎么解决,我说的消息最终一致性,异步?有没有更好的方案?同步TCC方式,TCC方

这篇关于【备战秋招】2022年Java后端面试题,查缺补漏,啃完16套专题技术栈的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/423964

相关文章

Java实现Excel与HTML互转

《Java实现Excel与HTML互转》Excel是一种电子表格格式,而HTM则是一种用于创建网页的标记语言,虽然两者在用途上存在差异,但有时我们需要将数据从一种格式转换为另一种格式,下面我们就来看看... Excel是一种电子表格格式,广泛用于数据处理和分析,而HTM则是一种用于创建网页的标记语言。虽然两

java图像识别工具类(ImageRecognitionUtils)使用实例详解

《java图像识别工具类(ImageRecognitionUtils)使用实例详解》:本文主要介绍如何在Java中使用OpenCV进行图像识别,包括图像加载、预处理、分类、人脸检测和特征提取等步骤... 目录前言1. 图像识别的背景与作用2. 设计目标3. 项目依赖4. 设计与实现 ImageRecogni

Java中Springboot集成Kafka实现消息发送和接收功能

《Java中Springboot集成Kafka实现消息发送和接收功能》Kafka是一个高吞吐量的分布式发布-订阅消息系统,主要用于处理大规模数据流,它由生产者、消费者、主题、分区和代理等组件构成,Ka... 目录一、Kafka 简介二、Kafka 功能三、POM依赖四、配置文件五、生产者六、消费者一、Kaf

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

详解Java如何向http/https接口发出请求

《详解Java如何向http/https接口发出请求》这篇文章主要为大家详细介绍了Java如何实现向http/https接口发出请求,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 用Java发送web请求所用到的包都在java.net下,在具体使用时可以用如下代码,你可以把它封装成一

SpringBoot使用Apache Tika检测敏感信息

《SpringBoot使用ApacheTika检测敏感信息》ApacheTika是一个功能强大的内容分析工具,它能够从多种文件格式中提取文本、元数据以及其他结构化信息,下面我们来看看如何使用Ap... 目录Tika 主要特性1. 多格式支持2. 自动文件类型检测3. 文本和元数据提取4. 支持 OCR(光学

Java内存泄漏问题的排查、优化与最佳实践

《Java内存泄漏问题的排查、优化与最佳实践》在Java开发中,内存泄漏是一个常见且令人头疼的问题,内存泄漏指的是程序在运行过程中,已经不再使用的对象没有被及时释放,从而导致内存占用不断增加,最终... 目录引言1. 什么是内存泄漏?常见的内存泄漏情况2. 如何排查 Java 中的内存泄漏?2.1 使用 J

JAVA系统中Spring Boot应用程序的配置文件application.yml使用详解

《JAVA系统中SpringBoot应用程序的配置文件application.yml使用详解》:本文主要介绍JAVA系统中SpringBoot应用程序的配置文件application.yml的... 目录文件路径文件内容解释1. Server 配置2. Spring 配置3. Logging 配置4. Ma

Java 字符数组转字符串的常用方法

《Java字符数组转字符串的常用方法》文章总结了在Java中将字符数组转换为字符串的几种常用方法,包括使用String构造函数、String.valueOf()方法、StringBuilder以及A... 目录1. 使用String构造函数1.1 基本转换方法1.2 注意事项2. 使用String.valu

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.