今天给大家分享一篇 春招Java后台开发岗22届实习面经汇总阿里腾讯美团网易, 希望大家在面试中能够斩获Offer, 找到自己满意的工作。 一起来看看吧~
阿里AE部门3.11一面
最近整理了一系列的Java面试题,包含了Java基础、进阶、多线程、并发编程、数据库(MySQL、Redis、MongoDB、Memcachedd等等)、Spring全家桶、MyBatis、ZooKeeper、Dubbo、Elasticsearch、RabbitMQ、Kafka、Linux、Netty、Tomcat以及阿里、腾讯、字节、百度等大厂的面试真题。
点击下载完整PDF☞ 2022年最新Java面试题集
最近整理了一系列的Java面试题,包含了Java基础、进阶、多线程、并发编程、数据库(MySQL、Redis、MongoDB、Memcachedd等等)、Spring全家桶、MyBatis、ZooKeeper、Dubbo、Elasticsearch、RabbitMQ、Kafka、Linux、Netty、Tomcat以及阿里、腾讯、字节、百度等大厂的面试真题。
点击下载完整PDF☞ 2022年最新Java面试题集
电话面试50分钟
从
项目写的技术点开始问起
项目写的技术点开始问起
1.RPC工具的难点
2.动态代理,CGLIB是怎么实现的
3.负载均衡作用
4.如何设计负载均衡器
5.负载均衡如何保证健壮性
6.SpringBoot的优势
7. SpringBoot如何实现自动配置
8.Linux什么命令精准查找一个文件
9.进程与线程通信上的区别
10.HTTP有无状态,Cookie和&Session
11.MySQL的B+Tree和 BTree的区别,B+Tree在内存中有何优势
12.Redis包含的模块
13.
项目中Kafka的作用
项目中Kafka的作用
14.
项目中支付宝支付接入时出现的问题
项目中支付宝支付接入时出现的问题
反问
5.负载均衡如何保证健壮性,这题中需要怎么设计? 答:采用心跳机制检测宕机节点。
腾讯PCG-腾讯看点部门3.16一面
线下面试90分钟
1.手撕代码:一道简单的
动态规划,给出三个小球重量分别为{1 2 5},输入一个重量值比如10,输出凑到这个重量所需的最小球数量。
不用dp[i],怎么减小空间复杂度?
动态规划,给出三个小球重量分别为{1 2 5},输入一个重量值比如10,输出凑到这个重量所需的最小球数量。
不用dp[i],怎么减小空间复杂度?
2.MySQL中B+树相对于
红黑树在查找上为什么更占优势?树高和磁盘两个角度。
红黑树在查找上为什么更占优势?树高和磁盘两个角度。
3.海量QQ号,怎么设计hash
算法,使hash后结果尽量均匀?提示对QQ号加上salt值,使其更加具有随机性。
算法,使hash后结果尽量均匀?提示对QQ号加上salt值,使其更加具有随机性。
4.hash后在桶上形成
链表,怎么优化?
链表,怎么优化?
5.如果不用
红黑树,怎么把hash后桶上的
链表存入到磁盘空间内,要怎么设计 磁盘内的存储方式?加分题
红黑树,怎么把hash后桶上的
链表存入到磁盘空间内,要怎么设计 磁盘内的存储方式?加分题
6.简历中写了任务调度
算法研究,讲一下研究内容。
算法研究,讲一下研究内容。
7.操作系统中的调度
算法知道多少?
算法知道多少?
8.CFS调度
算法
算法
9.任务调度中如何控制进入某一节点的流量?使用消息队列,或者设计一个调度中心。
反问
后台开发的发展路径。
由于我是上午最后一个,并且面试官人超好,很愿意传授技术上的经验,给我讲解了
腾讯这种用户量的企业,是如何在技术层面解决
海量数据以及设计架构的。以及介绍了
腾讯看点部门的业务内容,真的是技术非常好的一个部门????。
腾讯这种用户量的企业,是如何在技术层面解决
海量数据以及设计架构的。以及介绍了
腾讯看点部门的业务内容,真的是技术非常好的一个部门????。
并且面试官讲到了后端开发岗做的事就是解决业务问题,重要的是做选择,选择最适合业务的技术。这就需要很扎实的基础知识,并且需要融会贯通。
在学习基础知识时,首先要知道一门技术是什么,为什么用,最重要的还是提炼技术背后的方法和思想。需要提高知识迁移能力。
比如 Paxos的思想,就是解决分布式一致性问题最好的思想,
腾讯解决分布式一致性问题也是使用的Paxos的方法。
腾讯解决分布式一致性问题也是使用的Paxos的方法。
3.17二面
视频面30分钟
1.直接问
项目,帖子是怎么存数据库的?帖子中有图片怎么进行压缩优化?
项目,帖子是怎么存数据库的?帖子中有图片怎么进行压缩优化?
2.怎么防止XSS攻击?
3.SpringBoot怎么在服务端接收到HTTP请求后,再转发到控制层?
4.论坛中的关注操作是怎么做的?并发量高了后怎么优化?
5. SpringBoot或MyBatis的
源码看过吗?
源码看过吗?
6.原生的Socket网络编程,怎么设计解析请求报文?
7.用户密码是如何保存在数据库中的?如何在用户登录时验证身份信息?如何防止登录请求报文被窃取?
美团广告平台部3.22一面
视频面50分钟
1.Java里是怎么定义垃圾的?引用计数算***出现什么问题?
2.可达性分析里哪些对象可以作为GC Roots?
3.GC
算法
算法
4.分代回收,eden和sur
vivor怎么流转
vivor怎么流转
5.所有对象都是在新生代分配的吗?
6.类加载都有哪些阶段,各个阶段的功能?
7.缓存问题,都是如何解决的?
8.布隆过滤器是怎么实现的?能否删除Bitmap上的数据? 答: 两个数通过k个哈希函数得到的值都相同,落到Bitmap的同一处,则不能删除。
9.MySQL分别在哪些场景下适合分库分表?分表后id冲突怎么解决?
10.分表后怎么解决数据热度不均衡的问题? 答:
一致性哈希算法。
一致性哈希算法。
11.浏览器中输入url到返回页面发生了什么?
12.
算法题:字符串s1=abc,字符串s2=acb,判断s1和s2除了字符顺序,其他都一样,时间复杂度O(N)空间复杂度O(常量数组),或者 时间复杂度 O(N^2)空间复杂度O(1)?有没有时间复杂度小于O(N^2)且空间复杂度O(1)的
算法,提示可以修改输入的字符数组。
算法题:字符串s1=abc,字符串s2=acb,判断s1和s2除了字符顺序,其他都一样,时间复杂度O(N)空间复杂度O(常量数组),或者 时间复杂度 O(N^2)空间复杂度O(1)?有没有时间复杂度小于O(N^2)且空间复杂度O(1)的
算法,提示可以修改输入的字符数组。
13.
项目的论坛类网站中Redis是怎么使用的?缓存是如何更新的?
项目的论坛类网站中Redis是怎么使用的?缓存是如何更新的?
14.Kafka怎么应用的?为什么不把需要消费的数据持久化到数据库?
反问
1.贵部门业务实现中主要用到的工具? 答:常规的一些工具如Spring。
2.对基础知识该如何加深理解? 答:知道是什么还要知道为什么,因为当业务开发中遇到与预期行为不一致时,才能解决问题或者进一步优化。
网易互联网杭州研究院3.24一面
视频面20分钟
1.详细讲一下你觉得做得好的一个
项目。用Redis和Kafka做了什么?
项目。用Redis和Kafka做了什么?
2.缓存失效了该怎么办?
3.缓存雪崩是什么? 该如何处理?
4.消息队列的作用?
项目中削峰是如何体现的?
项目中削峰是如何体现的?
5.Redis的几种数据类型。列表相关的数据结构。SKIPLIST是怎么样的?
6.Kafka的组件了解吗?
7.Java并发中的线程池是什么?怎么创建?分类?
8.进程和线程的区别?
9.进程通信
10.写个
排序
算法。讲一下归并
算法的思想,复杂度是多少?
排序
算法。讲一下归并
算法的思想,复杂度是多少?
11.
算法题 :
判断链表中是否有环,要求用O(1)的空间。原题为LeetCode141. 环形链表。
算法题 :
判断链表中是否有环,要求用O(1)的空间。原题为LeetCode141. 环形链表。
反问
1.Kafka深入学习有什么方向? 答:结合大数据相关,要看
源码。
源码。
3.26二面
视频面35分钟
1.聊一下SpringBoot的作用。
2.Spring的IOC是什么?bean是怎么加载的(或者说怎么初始化一个bean)?
3.接上题,那JVM是怎么加载一个类的?怎么找到字节码文件的,去哪些文件夹定位的?
4.双亲委托模式是什么?那现在可以回答bean的加载吗?
5.
项目中 Kafka怎么使用的?消息队列中消息一直堆积该怎么办?相比用Redis来做消息队列有什么好处?
项目中 Kafka怎么使用的?消息队列中消息一直堆积该怎么办?相比用Redis来做消息队列有什么好处?
6.ES做搜索的原理?倒排索引了解吗?关键词对应多个文档该怎么办?
7.
项目中用到的线程池是什么?怎么创建的?为什么选FixedThreadPool?
项目中用到的线程池是什么?怎么创建的?为什么选FixedThreadPool?
8.你说饱和策略采用的是 抛弃的方法,那当遇到同时产生大量线程的场景,你的网站页面会有什么样的表现?为什么不用将线程排队的方法?
9.Java的线程有没有对应os上的线程?
10.
项目中Redis是怎么使用的?热点数据是怎么在缓存中生成的? 答:定时任务实时地统计热度值,在内存中进行堆
排序取TopN,存到缓存中。
项目中Redis是怎么使用的?热点数据是怎么在缓存中生成的? 答:定时任务实时地统计热度值,在内存中进行堆
排序取TopN,存到缓存中。
11.假如Redis中有多个KV要更新,KV1更新了,KV2失败了怎么办?Redis不支持回滚,那要怎么设计? 答:版本号机制。
反问
1.怎么把基础知识应用到实际
项目中? 答:学习优秀的工具和中间件的解决方案,比如Redis内存加单线程就是速度快,所以就有了Nodejs这种技术,就是一样的单线程。技术就是用来解决问题的,始终是绕不开这些基础问题的核心思想的。
项目中? 答:学习优秀的工具和中间件的解决方案,比如Redis内存加单线程就是速度快,所以就有了Nodejs这种技术,就是一样的单线程。技术就是用来解决问题的,始终是绕不开这些基础问题的核心思想的。