美团完整面经

面试岗位

面试的岗位 - 2025春季校招 【转正实习】软件服务工程师-后端方向(成都 - 软硬件服务-SaaS事业部)

一面(业务初试 - 30min)

问题

自我介绍

Java基础

  1. HashMap底层用的数据结构是什么?是线程安全的吗?那如何实现删除安全?
  2. 队列和栈的区别?
  3. 说说你对Java反射的理解?了解哪些东西?
  4. Mybatis和MybatisPlus的区别?
  5. 了解哪些设计模式?详细说一下抽象工厂
  6. MySQL的聚簇索引和非聚簇索引的区别
  7. MySQL的隔离级别是哪几种?MySQL默认的隔离级别是哪一种?会引发什么问题?MySQL解决幻读了吗?
  8. MySQL日志了解哪些?
  9. MySQL分页查询如何做?
  10. Redis常用的数据结构?set和zset的区别?
  11. Redis的持久化策略有哪些?各有啥优缺点?各用在那些场景下?
  12. 你知道那些MQ?MQ的作用?MQ的区别?
  13. Linux会那些命令?
  14. 如何进行JVM调优?
  15. 堆和方法区里面分别存的哪些东西?

计算机网络

  1. HTTPS是如何实现的?
  2. 一次网络请求会遇到那些协议?
  3. 一个机器上出现大量Tomcat套接字是什么导致的?
  4. TCP快速重传是如何实现的?拥塞控制呢?

如何学习

  1. 平时如何学习,自己的学习过程?
  2. 会通过项目的方式去练习这些知识吗?重复去学习?
  3. 到现场实习大概多久?

现场笔试

  1. MySQL笔试题
    在这里插入图片描述

提问环节

后面二面,这里暂时没有提问。

二面(业务复试 - 60min)

问题

自我介绍
个人的优缺点?
闲聊。。。。

实习经历拷问

  1. 定制化需求开发时,如何把代码侵入降到最低?对标准的能力没有侵入或者没有感知?
  2. 基于标准的系统,做功能的二开,你觉得如何设计才能保证对标准系统侵入要小一些
  3. JVM调用时如何操作的?
  4. JVM调优的相关参数有了解吗?
  5. 如何优化慢SQL?如何找到存在的问题,如何去优化?

项目拷问

在这里插入图片描述

  1. 基于令牌桶如何实现库存超卖问题?
  2. Redis去扣减完,但实际上下单时,因为系统的宕机、重启导致真正下单的流程失败,那如何保证客户能抢到秒杀的物品
  3. 现在用Redis来保证看库存不会超卖,假设现在Redis中有50个奖品,现在有1万个用户来抢,是不是只有50个请求走到发MQ的逻辑,那9. 剩余9950个请求是如何处理的
  4. 如何保证消息队列的数据请求和消费一定成功呢?
  5. 这样就会使用到重试机制,就可能会导致一条消息会被消费多次,如何保证消息有且只有一次消费?
  6. 消息如何实现幂等,就靠消息版本号吗?

自主设计

  1. 有用过LRU(最近最久未使用)算法,如果让你来实现这个算法,你改如何实现? --> 双向链表
  2. 链表新增和删除的时间复杂度,查询的实现复杂度?能不能把查询的O(n)复杂度降低到O(1)?

如何学习

  1. 对新的知识学习过程中,刚开始可能会有点懵,你是如何就学习的呢?
  2. 你在整个学习的过程中有遇到比较大的困难和挑战吗,是如何解决的?
  3. 在整个项目开发中有了解过线程池的概念吗?
  4. 你对自己的职业规划和发展是怎样想的?
  5. 你觉得自己现在和初级工程师的差距在哪里?
  6. 你觉得工作经验和写码这块,从初级到中级,你打算花1年,2年,还是多久去打造?
  7. 你觉得和他(同学,同一个面试官,我和同一个项目组)比有啥优点和缺点?

现场笔试

  1. 算法笔试题 - 反转链表在这里插入图片描述

提问环节

我:结合这场面试,面试官您对我未来或者学习有什么建议吗?
HR:整体,好的方面,就是说,我觉得还是挺务实的,做事非常的扎实,感觉的出来是一个有学习能力的人。建议的话,对于一些知识的掌握上,灵活度(我想做的更好但是不知怎么做)的应用上还需要提高,这可能需要你对知识的原理比较深入的了解,你可能才能做到灵活应用。一方面是看,另一方面是看过了之后更多深入的思考。第二个建议,就是不太建议刚开始就去学很多的中间件的用法,去追求知识的广度,这些东西学起来很快,迟早都能学,只要有场景。关键是去学习中间件背后的一些原理以及他为啥这样去做,到底解决哪些问题。技术背后的逻辑是相同的,例如RabbitMQ的基本原理全部弄清楚后,可能对高性能、高可用、和高并发上的设计,大概就是相同的,就是场景不一样,针对不同场景进行定制化的设计,但背后的逻辑都是相同的。
。。。
技术行业,没有一个东西是绝对的好,需要自己有一个思辨的过程,都是基于面对的问题,进行折中的一个选型
。。。
对于工程而言,SpringAI也就只是一个工具,还是学工具背后的原理

三面(HR面试 - 20min)

问题

  1. 简单的自我介绍,包含一个点(当前除了美团之外还有哪些机会,以及对工作地的期望)
  2. 北上广有考虑吗?
  3. 除了美团这块还有其他的公司同步再看吗?或者说去那个行业工作呢?
  4. 你的实习的经历,你的工作职责,团队有多少人,如何分工,解决了啥问题?
  5. 在实习过程中,有遇到啥具有挑战的事情吗?
  6. 这段实习经历下来,有啥感受,有没有一些认知或者想法?你在大学中没有的,你在这段实习中才有,或者说一开始你认为是A但是你实习后发现是B?
  7. 在这段实习经历中有啥是你不太能接受的?一些工作的细节让你很反感?或者说你觉得很奇怪,为什么会有这种情况产生?为什么会发生这些事情?为什么会是这人给奖等等这些情况,包括不限于?
  8. 到现在这个阶段,你还是认为这个观点吗?还是说会有些变化?
  9. 你对你自己找的这份工作期待吗?或者你想找一个什么样的工作呢?
  10. 最近你没有和学长学姐了解过互联网企业或美团这样一些不好的地方,不知道你有没有上小红书提前去查一查?
  11. 你有没有刷到过或者和朋友这些,细致的了解过工作,就算你是程序员,你的工作也不只是写代码,其他的工作万一你不喜欢怎么办?
  12. 你对你的薪水有期待吗?这里指的是你成为正式员工,大概期待的月薪是到怎样的一个区间呢?
  13. 你有什么爱好吗?

提问环节

我:通过这场面试,面试官您对我未来的发展提一些建议吧!
HR:你现在还在实习,你可以提前看一看互联网公司是不是你理想中的一个工作,多方了解一下。。。在入职之前要有一个比较好的认知或者说提前做一个输入也好,在未来不管你在哪一家公司,你能干的更好的前提是能不能干的更久(人生价值观、理念、风格、体验等其他方面和公司契合度越高,在公司落地成功的机率就越高,你的技术能力提升和实践机率就越大)!。。。

总结

这三轮面试下来,个人感觉这个岗位对校招生还是很友好的。一面主要是考察Java基础和计算机网络相关知识,Java基础还好,但是计算机网络就有点汗流浃背了;二面主要是对你项目的拷打,给我的感觉很好,开始我给面试官的影响很好,状态很放松;三面,主要对你的一个综合的考察,还是很轻松。欢迎大家在评论区交流!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/84657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pysnmp 操作流程和模块交互关系的可视化总结

1. SNMP GET 操作序列图 #mermaid-svg-KALvv8WkHJTsNCeu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-KALvv8WkHJTsNCeu .error-icon{fill:#552222;}#mermaid-svg-KALvv8WkHJTsNCeu .error-text{fill:#552222;str…

关于 /proc/net/tcp 与 /proc/$pid/net/tcp 的关系分析

关于 /proc/net/tcp 与 /proc/$pid/net/tcp 的关系分析 1. 基础概念 在 Linux 系统中,每个进程必定归属于一个且仅一个网络命名空间(Network Namespace)。这是 Linux 命名空间隔离机制的核心特性之一。 /proc/net/tcp 显示当前网络命名空间…

微信小程序 - 保存手机号等信息到通讯录

主要使用小程序 wx.addPhoneContact 这个api 一、界面 <view class"tab-item" bindtap"addToPhoneContacts">保存</view> 二、js 逻辑文件中 addToPhoneContacts() {wx.addPhoneContact({firstName: this.data.firstName, // 姓名mobilePh…

计算机视觉一些定义解析

1.GCT&#xff08;Gated Channel Transformation&#xff09; 定义 GCT&#xff08;Gated Channel Transformation&#xff09;是一种用于增强卷积神经网络特征提取能力的模块。它的核心思想是通过门控机制对特征图的通道进行动态调整&#xff0c;从而突出对任务更有帮助的特…

美团NoCode的Database 使用指南

系列文章目录 第一篇&#xff1a;美团NoCode设计网站的尝试经验分 第二篇&#xff1a;美团NoCode中的Dev Mode 使用指南 文章目录 系列文章目录Database 适用场景一、什么是 Database&#xff1f;二、准备流程1. 申请账号 三、使用流程1.申请资源的同时可搭建 NoCode 页面&…

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…

1.11 HTTP 文件上传的核心协议

HTTP 文件上传是 Web 开发中的常见需求&#xff0c;涉及到特殊的请求格式和处理机制。 一、HTTP 文件上传的核心协议 1. 两种主要方式 multipart/form-data&#xff08;主流&#xff09; 支持二进制文件和表单字段混合传输&#xff0c;由 Content-Type 头部标识。applicatio…

安装 Poppler(Windows)

下载 Poppler&#xff08;Windows&#xff09;&#xff1a;https://github.com/oschwartz10612/poppler-windows/releases/ 解压在自己目录下 配置系统环境变量&#xff1a;把 poppler-xx.x.x\bin 目录加入你的环境变量 PATH 中。 检查是否配置成功 pdfinfo

Java学习笔记之:初识nginx

Java学习笔记之&#xff1a;初识nginx PS&#xff1a;虽然总结的都很简单&#xff0c;但是作为初学者并且本人记忆力较差所以每次学习新知识点后习惯性记录下来&#xff0c;这样加深一遍记忆并且便于日后复习。 介绍&#xff1a; Nginx是一款轻量级的Web服务器/反向代理服务器…

Middleware

中间件的定义&#xff1a;中间件是位于操作系统和应用程序之间的软件层&#xff0c;用于解决分布式系统中通信、数据共享、资源管理等共性问题。消息队列属于通信中间件&#xff0c;用于在分布式系统中传递消息&#xff0c;实现应用解耦、异步通信和流量削峰。解耦系统&#xf…

Mac如何配置ZSH并使用Oh-my-zsh?让你的终端更加实用、美观

前言 现在&#xff0c;越来越多的人趋向使用ZSH取代(Linux)原本的Bash作为自己的终端Shell。的确&#xff0c;ZSH才是适用于现代的Shell&#xff1a; 更丰富的命令提示更鲜明的演示标记更强大的插件支持 什么是ZSH 回答什么是ZSH前&#xff0c;我们先解释什么是Bash&#x…

C++11新标准

重点 auto 类型推导范围 for 迭代初始化列表变参模板 新类型 C11新增了类型 long long 和 unsigned long long&#xff0c;以支持64位(或更宽)的整型;新增了类型 char16_t和 char32_t&#xff0c;以支持 16位和 32 位的字符表示;还新增了“原始”字符串。 常量 nullptr nu…

SpringAI Prompt提示词

基本概念 Prompts提示词 ❝ 提示词的是引导AI模型输出的输入&#xff0c;提示词的正确性直接影响模型输出的。 Message消息 Message 接口封装了 Prompt 文本内容、一组元数据属性以及称为 MessageType 的分类。Spring AI消息API&#xff1a; 其中最重要的就是角色&#xff1a; …

力扣刷题——二分查找

数组是存放在连续内存空间上的相同类型数据的集合数组下标都是从0开始的数组内存空间的地址是连续的正是因为数组在内存空间的地址是连续的&#xff0c;所以我们在删除或者增添元素的时候&#xff0c;就难免要移动其他元素的地址。 使用二分查找法返回的元素下标可能不是唯一的…

黑群晖NAS部署DeepSeek模型与内网穿透实现本地AI服务

文章目录 前言1.安装Container Manager2. 启动ssh功能3. ssh连接黑群晖4. 安装Ollama5. 安装deepseek模型6. 安装open-webui图形界面7. 安装内网穿透7.1 下载cpolar套件7.2 配置群辉虚拟机7.3 配置公网地址小结 7.4 配置固定公网地址 总结 前言 在追求自建网络存储方案的极客群…

Rust 学习笔记:处理任意数量的 future

Rust 学习笔记&#xff1a;处理任意数量的 future Rust 学习笔记&#xff1a;处理任意数量的 future竞争的 future将控制权交给运行时构建我们自己的异步抽象 Rust 学习笔记&#xff1a;处理任意数量的 future 当两个 future 切换到三个 future 时&#xff0c;我们也必须从使用…

2025年TCP洪水攻击防护实战全解析:从协议对抗到AI智能防御

一、2025年TCP洪水攻击的新特征与挑战 AI驱动的自适应攻击 攻击者利用生成式AI动态调整SYN报文特征&#xff08;如载荷内容、发送频率&#xff09;&#xff0c;使攻击流量与正常业务流量的差异率低至0.5%&#xff0c;传统基于规则引擎的防御策略完全失效。 混合协议打击常态化…

二、集成开发环境(IDE)

上节我们在终端演示了python虚拟环境的用法&#xff0c;但终端不方便代码编写和调试&#xff0c;本节介绍两种常用的python集成开发环境&#xff1a;Pycharm和Jupter Notebook。Pycharm是最流行的Python IDE&#xff0c;下载网址&#xff1a;下载 PyCharm&#xff1a;JetBrains…

芯片电感需求趋势及选型关键因素

随着AI产业的快速发展&#xff0c;数据中心、AI芯片、服务器等算力基础设施对于芯片电感等电子元件的要求不断提升。另一方面&#xff0c;电子产品向高功率密度和小型化方向发展&#xff0c;电源模块趋于小型化、低电压、大电流&#xff0c;也对芯片电感提出了小型化、轻量化、…

Vue3+Element Plus表单验证实战:从零实现用户管理

前言 在Vue3项目开发中&#xff0c;表单验证是保证数据完整性和准确性的重要环节。Element Plus作为Vue3的流行UI组件库&#xff0c;提供了强大的表单验证功能。本文将基于一个用户管理模块的实战案例&#xff0c;详细介绍Vue3中如何使用Element Plus实现完整的表单验证流程。…