美团实习—后端开发凉经

news2024/10/7 12:20:58

面试经历分享

日期: 4月22日
时长: 50分钟

意外之喜        
        没想到在面试过程中,我再次被选中进行下一轮,这确实让我感到有些意外和欣喜。这次面试经历对我而言,不仅是一次技能的检验,更是一次知识的深入学习和成长的机会。

方向与选择
        当面试官问及为何从测试方向转向研发方向时,我诚实地回应,表达了研发方向对我吸引力的一部分原因在于其相对较高的薪资水平。但同时,我也强调了自己对技术探索的热爱和对编程的浓厚兴趣,这些都是驱使我转向研发方向的动力。

技能与优势
        尽管我在测试方向有实习经验,但我坚信在研发方向上也有我的独特优势。我具备扎实的编程基础,对常见的数据结构如数组、链表、栈、队列等都有深入了解。此外,我能够灵活运用图的两种搜索方式DFS(深度优先搜索)和BFS(广度优先搜索),以及多种算法排序(如冒泡排序、快速排序、归并排序等),并清楚它们的时间复杂度和空间复杂度。

技术与细节
        当被问及基数排序时,我能够清晰地解释其工作原理和优势。在数据库方面,我对MySQL的ACID特性(原子性、一致性、隔离性、持久性)有深入的理解,并能够解释不同隔离级别的区别和适用场景。对于none和空字符串的区别、深拷贝与浅拷贝的差异、C++野指针的危害等知识点,我都能够准确而详细地回答。

        此外,我还对try语句块中的finally子句有清晰的认识,知道它无论如何都会被执行。对于构造函数和析构函数的特点,以及析构函数是否能调用虚函数等问题,我也给出了准确的回答。

实际应用与场景
        在面试过程中,我还被问及缓存穿透的场景以及Redis如何实现可持久化。我能够结合实际应用场景,解释缓存穿透的成因和解决方案,并阐述Redis通过RDB(快照)和AOF(追加文件)两种方式实现数据持久化的原理。

        对于MVC(模型-视图-控制器)模型和DDD(领域驱动设计)模型,我也能够阐述它们的基本概念和在实际软件开发中的应用。同时,我对HTTP常用的状态码也有深入的了解,并能够解释它们各自的含义和用途。

实战能力
        在手撕代码环节,我面临了“分割IP”这一题目。在短暂的思考后,我迅速制定了解决方案,并通过编写代码成功实现了IP地址的分割。这一环节不仅检验了我的编程能力,也展现了我在面对实际问题时的快速响应和解决问题的能力。

总结
        这次面试经历对我来说是一次宝贵的经验。通过面试,我不仅展示了自己的技能和优势,也学习到了许多新的知识点和解决方案。我相信,这些经验和知识将对我未来的职业发展产生积极的影响。

面试问题提炼与回答建议

为什么从测试转向研发?

        回答建议:在实习期间,我深入了解了测试领域,并积累了丰富的经验。然而,我逐渐发现,研发工作能够更直接地参与到产品的核心开发中,实现更多创新。此外,研发工作的薪酬通常更高,这也是吸引我转向研发的一个重要因素。我相信,凭借我的测试背景和对技术的深入理解,我能够在研发领域发挥出色的作用。

相对于测试,你在研发方向的优势是什么?

        回答建议:在测试实习期间,我培养了严谨的逻辑思维和细致的观察力,能够迅速发现系统中的潜在问题。这些能力在研发中同样重要,可以帮助我编写出更健壮、更可靠的代码。此外,我对技术的深入理解和快速学习能力也将使我能够快速适应研发工作,为团队贡献价值。

请举例几种常见的数据结构。

        回答示例:常见的数据结构包括数组、链表、栈、队列、树(如二叉树、红黑树等)、图等。

请介绍图的两种搜索方式:DFS和BFS。

        回答示例:DFS(深度优先搜索)是从某个顶点出发,尽可能深地遍历图,直到达到没有未访问过的顶点的叶子节点,然后回溯到前一个节点,继续搜索未访问过的节点。BFS(广度优先搜索)则是从某个顶点出发,先访问所有相邻的节点,然后再访问这些节点的相邻节点,层层递进,直到遍历完整个图。

介绍几种算法排序的例子,以及他们的空间复杂度。

        回答示例:常见的排序算法有冒泡排序、插入排序、选择排序、快速排序、归并排序等。例如,冒泡排序的空间复杂度为O(1),因为它只需要一个额外的空间来交换元素。而归并排序的空间复杂度为O(n),因为它需要额外的空间来存储归并过程中的临时数据。

你了解基数排序吗?

        回答示例:是的,我了解基数排序。基数排序是一种非比较型整数排序算法,其通过将整数按位数切割成不同的数字,然后按每个位数分别比较进行排序。基数排序通常用于对大量整数进行排序,其时间复杂度为O(nk)(其中n是待排序元素个数,k是数字的位数)。

请介绍MySQL的ACID功能。

        回答示例:MySQL的ACID特性保证了数据库事务的原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这些特性确保了数据库在多个事务并发执行时的正确性和可靠性。

你知道MySQL的哪些隔离级别?

        回答示例:MySQL支持四种隔离级别,分别是读未提交、读已提交、可重复读和串行化。这些隔离级别提供了不同程度的数据可见性和并发性能。

none和空字符串的区别是什么?

        回答示例:none通常表示一个空值或不存在的值,在Python中None是一个特殊的常量,表示没有值或空值。而空字符串是一个长度为0的字符串,即它不包含任何字符。在数据库中,NULL(类似于Python中的None)和空字符串是两种不同的概念,前者表示缺失值或未知值,后者表示一个明确的、但不包含任何内容的字符串。

SELECT NULL=NULL会怎么样?

        回答示例:在SQL中,NULL表示一个未知或缺失的值。因此,NULL=NULL的比较结果不是TRUE,而是NULL。这是因为NULL不代表任何具体的值,所以无法确定两个NULL是否相等。

深拷贝和浅拷贝的区别是什么?

        回答示例:深拷贝会创建一个新的对象,并复制原始对象的所有内容,包括其内部的子对象。这样,修改新对象不会影响原始对象。而浅拷贝则只复制原始对象的顶层结构和引用,不会递归地复制内部子对象。因此,修改浅拷贝中的子对象可能会影响原始对象。

C++中的野指针是什么?

        回答示例:野指针是指已经被释放的内存,但是指针的值没有被置为NULL,仍然指向原来的内存地址。这样的指针是危险的,因为它们可能会导致程序崩溃或数据损坏。

try里面的finally你了解吗?一定会被执行吗?

        回答示例:finally块是Java异常处理机制的一部分,用于在try块和catch块之后执行清理代码。无论try块中的代码是否抛出异常,finally块中的代码都会被执行。但是,如果在finally块执行之前程序被终止(如System.exit()方法被调用或JVM崩溃),则finally块可能不会被执行。

构造函数的特点是什么?

        回答示例:构造函数是一种特殊的方法,用于初始化新创建的对象。它的特点包括:构造函数名与类名相同,没有返回值类型,可以在创建对象时自动调用,可以重载但不能被继承,主要用于完成对象的初始化工作。

析构函数是否能调用虚函数?

        回答示例:在C++中,析构函数中可以调用虚函数,但通常不建议这样做。因为当析构函数被调用时,对象的生命周期即将结束,此时调用虚函数可能会导致不确定的行为,特别是如果虚函数依赖于对象的某些状态或资源,而这些状态或资源在析构过程中可能已经被释放或不再有效。

缓存穿透的场景是什么?

        回答示例:缓存穿透是指查询一个不存在的数据,由于缓存中也没有,导致每次都要去数据库中查询,造成缓存和数据库资源的浪费,甚至可能让数据库崩溃。常见的解决方案是将空对象也缓存起来或者采用布隆过滤器等数据结构来快速判断数据是否存在。

Redis如何实现可持久化?

        回答示例:Redis提供了两种持久化方式:RDB(Redis DataBase)和AOF(Append Only File)。RDB是默认的持久化方式,它按照一定的时间间隔将数据快照写入二进制文件。AOF持久化则是通过记录Redis的所有写命令并追加到一个文件中来实现数据的持久化,这种方式可以提供更好的数据安全性,但可能会影响Redis的性能。

MVC模型和DDD模型是什么?

        回答示例:MVC(Model-View-Controller)模型是一种软件设计模式,它将应用程序分为三个主要部分:模型(Model)表示数据和业务逻辑,视图(View)表示用户界面,控制器(Controller)处理用户输入并根据输入更新模型和视图。DDD(Domain-Driven Design)模型则是一种软件开发方法论,它强调将业务逻辑和领域知识作为软件设计的核心,通过建立丰富的领域模型来指导系统的设计和开发。

HTTP常用的状态码有哪些?

        回答示例:HTTP状态码是服务器对客户端请求的响应状态的一个三位数字代码。常见的状态码包括:200(OK,请求成功)、404(Not Found,未找到资源)、403(Forbidden,禁止访问)、500(Internal Server Error,服务器内部错误)等。

手撕代码:分割IP

        题目描述:给定一个字符串形式的IP地址,如"192.168.1.1",请编写一个函数将其分割成四个部分并返回一个包含这四个部分的列表。

示例代码(Python):

def split_ip(ip_address):  
    return ip_address.split('.')  
  
# 测试代码  
ip = "192.168.1.1"  
print(split_ip(ip))  # 输出:['192', '168', '1', '1']
        请注意,以上代码和回答示例是基于常见的面试问题和知识点整理的,具体回答时还需要根据面试的实际情况和语境进行适当的调整和补充。

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

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

相关文章

【LeetCode】九、双指针算法:环形链表检测 + 救生艇

文章目录 1、双指针算法1.1 对撞双指针1.2 快慢双指针 2、leetcode141:环形链表3、leetcode881:救生艇 1、双指针算法 用两个指针来共同解决一个问题: 1.1 对撞双指针 比如先有一个有序的数组array int[] array {1, 4, 5, 7, 9}先要找两个…

MM-LLM:使用Llava类构建图文多模态大模型实践

多模态大模型的结构如上,llava是用两层MLP作为连接器。该模式也是后续很多工作的基础。 本文主要参考了https://github.com/yuanzhoulvpi2017/zero_nlp/tree/main/train_llava的工作,最初是在b站看到的,讲解的很细致。 基础模型 大语言模型…

【BES2500x系列 -- RTX5操作系统】深入探索CMSIS-RTOS RTX -- 同步与通信篇 -- 消息队列和邮箱处理 --(四)

💌 所属专栏:【BES2500x系列】 😀 作  者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &#x1f49…

容器内存

一、容器内存概述 容器本质上还是一个进程,是一个被隔离和限制的进程。因此容器内存和进程内存在表现形式上其实是一样的,这块主要涉及三部分内容:RSS,page cache和swap这三部分,容器基于memory Cgroup对内存进行限制…

k8s部署单机版mysql8

一、创建命名空间 # cat mysql8-namespace.yaml apiVersion: v1 kind: Namespace metadata:name: mysql8labels:name: mysql8# kubectl apply -f mysql8-namespace.yaml namespace/mysql8 created# kubectl get ns|grep mysql8 mysql8 Active 8s二、创建mysql配…

某网页gpt的JS逆向

原网页网址 (base64) 在线解码 aHR0cHM6Ly9jbGF1ZGUzLmZyZWUyZ3B0Lnh5ei8 逆向效果图 调用代码(复制即用) 把倒数第三行换成下面的base64解码 aHR0cHM6Ly9jbGF1ZGUzLmZyZWUyZ3B0Lnh5ei9hcGkvZ2VuZXJhdGU import hashlib import time import reques…

Python学习篇:PyCharm的基本使用教程(二)

目录 1 前言 2 创建Python项目 3 创建Python文件 4 编写 Hello World 并运行 5 PyCharm界面简介 1 前言 PyCharm的使用贯穿整个Python的学习,所以单独拿出来出教程不合适,说多了对于新手来说也还是不明白,这里我们先从学习开始前大家需…

【仪器仪表】 矢量网络分析仪 Vector Network Analyzer

主要功能: 测量S参数: S11(输入反射系数):测量输入端口的反射。S21(正向传输系数):测量从输入端口到输出端口的传输。S12(反向传输系数):测量从输…

【后端面试题】【中间件】【NoSQL】MongoDB的配置服务器、复制机制、写入语义和面试准备

MongoDB的配置服务器 引入了分片机制之后,MongoDB启用了配置服务器(config server) 来存储元数据,这些元数据包括分片信息、权限控制信息,用来控制分布式锁。其中分片信息还会被负责执行查询mongos使用。 MongoDB的配置服务器有一个很大的优…

全网小视频去水印接口使用说明

一、请求地址: https://www.lytcreate.com/api/qsy/ 二、请求方式:POST 三、请求体:JSON body {"token": "个人中心的token","url": "视频分享地址"} token获取地址,访问&#xff…

DP:子序列问题

文章目录 什么是子序列子序列的特点举例说明常见问题 关于子序列问题的几个例题1.最长递增子序列2.摆动序列3.最长递增子序列的个数4.最长数对链5.最长定差子序列 总结 什么是子序列 在计算机科学和数学中,子序列(Subsequence)是指从一个序列…

继承QAbstractListModel,结合QListView

这里想要写一个QAbstractListModel的子类&#xff0c;学习一下如何实例化QAbstractListModel。 QAbstractListModel子类化-CSDN博客 QVariant与自定义类型互转之奇巧淫技_qt 类型转 qvariant-CSDN博客 #pragma once#include <QStyledItemDelegate> #include <qmeta…

012-GeoGebra基础篇-构造圆的切线

前边文章对于基础内容已经悉数覆盖了&#xff0c;这一篇我就不放具体的细节&#xff0c;若有需要可以复刻一下 目录 一、成品展示二、算式内容三、正确性检查五、文章最后 一、成品展示 二、算式内容 A(0,0) B(3,0) c: Circle(A,B) C(5,4) sSegment(A,C) DMidpoint(s) d: Circ…

javaEE——Servlet

1.web开发概述 所谓web开发,指的是从网页中向后端程序发送请求,与后端程序进行交互 2.java后端开发环境搭建 web后端(javaEE)程序需要运行在服务器中的&#xff0c;这样前端才可以访问得到 3.服务器是什么&#xff1f; ①服务器就是一款软件&#xff0c;可以向其发送请求&#…

分解+降维+预测!多重创新!直接写核心!EMD-KPCA-Transformer多变量时间序列光伏功率预测

分解降维预测&#xff01;多重创新&#xff01;直接写核心&#xff01;EMD-KPCA-Transformer多变量时间序列光伏功率预测 目录 分解降维预测&#xff01;多重创新&#xff01;直接写核心&#xff01;EMD-KPCA-Transformer多变量时间序列光伏功率预测效果一览基本介绍程序设计参…

嵌入式学习——硬件(Linux系统在2440上的启动)——day57

1. Linux2.6系统在s3c2440上的启动过程分三个阶段 1.1 启动u-boot 1.2 启动Linux内核 1.3 挂载根文件系统 2. bootloader 2.1 定义 bootloader的本质是一个裸机程序&#xff0c;bootlood专门是为了能够正确地启动linux操作系 统&#xff0c;在系统初上电时需要对系统做一些…

中霖教育怎么样?咨询工程师备考技巧

中霖教育怎么样?咨询工程师备考技巧 在备考咨询工程师的过程中&#xff0c;掌握正确的方式方法能够少走很多弯路&#xff0c;所以想取得好成绩采用恰当的备考技巧是非常重要的。 1、了解题型及考试结构 在准备阶段&#xff0c;理解各类型题目的特征和作答要求&#xff0c;确…

github仓库的基本使用-创建、上传文件、删除

1.第一步 先点击左侧菜单栏的远程仓库 2.点击NEW 3.创建仓库 然后点击右下角的 CREATE 4.点击code 点击SSH,然后我出现了You don’t have any public SSH keys in your GitHub account. You can add a new public key, or try cloning this repository via HTTPS. 1&#xff…

【JavaEE精炼宝库】多线程进阶(2)synchronized原理、JUC类——深度理解多线程编程

一、synchronized 原理 1.1 基本特点&#xff1a; 结合上面的锁策略&#xff0c;我们就可以总结出&#xff0c;synchronized 具有以下特性(只考虑 JDK 1.8)&#xff1a; 开始时是乐观锁&#xff0c;如果锁冲突频繁&#xff0c;就转换为悲观锁。 开始是轻量级锁实现&#xff…

成人职场商务英语学习柯桥外语学校|邮件中的“备注”用英语怎么说?

在英语中&#xff0c;"备注"通常可以翻译为"Notes" 或 "Remarks"。 这两个词在邮件中都很常用。例如: 1. Notes Notes: 是最通用和最常见的表达&#xff0c;可以用在各种情况下&#xff0c;例如&#xff1a; 提供有关电子邮件内容的附加信息 列…