拼多多面试总结

文章目录

    • 一面
      • 自我介绍
      • 提问
      • 算法
      • 反问
      • 结果
    • 二面
      • 提问
      • 算法
      • 反问
      • 结果
    • 主管面
      • 主管面试准备
        • 算法题
        • 其他
        • 个人提问准备
      • 提问
        • 数据库
          • 普通索引和覆盖索引的区别
          • 索引是什么?索引怎么加快数据库查询的?
          • 索引具体怎么实现的?以B+树为例,节点放了什么?
        • 计算机网络
          • 计算机网络有哪几个层
          • 为什么视频通话使用UDP,而不是TCP?为什么
          • HTTP协议有什么?
      • 算法题
      • 反问
      • 结果

一面

自我介绍

  • 讲了还能多不必要的东西,这里要在私下里总结一下,形成书面文件,然后重点介绍几个和计算机相关的方面。

提问

  • 内核态和用户态的切换

  • HTTTP和HTTPs的区别

  • TCP和UDP的具体区别

  • TCP为什么要三次握手?

  • 数据库中的索引创建如何更快?有什么注意事项?

  • 为什么要创建索引

  • 基本上除了最后两个,其他的都说出来了。

算法

  • 叠罗汉问题
  • 最大上升子序列 + 排序
  • 完美通过

反问

  • 拼多多有末尾淘汰制吗?

    • 没有
  • 我入职之前需要提前学一些什么吗?

    • 不用,java基础就够了,进去了,什么语言十二小时学不会。

结果

  • 一面通过,效果还行,不过二面心里有点发怵了。
  • 上述几个问题也有了清晰的认知和补充,面试官建议好好学习一下java ,然后在进行入职。

二面

  • 不管怎么样,权当是经验学习,明天二面,心里很慌,加油吧,能进就进,进不了,暑假好好准备面试的。
  • 二面还没开始,不过心态放平了,目前还是有很多八股没有背过,不过后续会好好准备的。能进就进,不能进就当作秋招预演了,不过每次都要总结一下,自己还有什么地方欠缺,每一次面试完,都要有所进步。
  • 昨天的面试让我有了一定的经验,就是最后不要问薪资,咱们就问和工作相关的内容,主要是以下两个方面
    • 如果入职的话,我想知道自己大概具体是负责哪个部分,我需要的提前学习什么?
    • 如果能够保证一周六天都到的话,实习转正的概率是多少?有什么硬性的规定吗?

提问

java中string和string buffer的区别?

  • 可变性和不可变性
    • String对象是不可变的。一旦创建了一个String对象,它的值就不能再改变。任何对String对象的修改都会产生一个新的String对象。
    • StringBuffer对象是可变的。可以对StringBuffer对象进行修改,而不会产生新的对象。
  • 线程安全性
    • String是不可变的,因此是线程安全的。在多个线程之间共享String对象是安全的,不需要同步。
    • StringBuffer是线程安全的。它的所有修改方法都是同步的,这意味着它可以安全地用于多线程环境中。
  • 性能
    • 因为String是不可变的,每次对String的修改都会产生一个新的对象,这在需要频繁修改字符串的场景下会带来性能问题。
    • StringBuffer是可变的,并且提供了高效的字符串修改方法,因此在需要频繁修改字符串的场景下,StringBuffer的性能更高。

java中的接口和抽象类?然后优先实现接口还是抽象类

在这里插入图片描述

算法

  • 找到若干个数组中,都出现的元素,并将之作为列表输出。
  • 手动实现,并且没有ide,没有补全,告诉那个老师,给你执行。
  • 好在通过了一个简单的方法,但是运行效率属实不行,后来他提醒我,我还没转过弯了。

反问

问题一

  • 如果入职的话,我想知道自己大概具体是负责哪个部分,我需要的提前学习什么?
  • 我这个组的是中间件。具体省略了。

问题二

  • 如果能够保证一周六天都到的话,实习转正的概率是多少?

  • 实习的话,只要去了,做出点东西了,都挺高的。

结果

  • 这里预测一下,大概率是通不过的,因为第一关的面试官并没有问很多java和数据库的东西,而且算法刚好我就会。
  • 意料之外,这里居然又过了,实在想不到,运气好?还是咋滴?不管了,继续准备吧。

主管面

  • 心里比较慌,上次面试应该是运气好,在我身上实在没找到什么能够让我通过的地方,所以,这次主管面试更加忐忑了,这里上网搜了一下,其他年份的主管面内容,这里准备一下。
  • 刚才心跳的很快,甚至说有点心悸了,因为我就这一个进了主管面,其他的都没有进主管面,这个挂了,其他的就都没有了。不过想了想,这不就是一份工作吗?我能够进主管面,就是运气,能进就进。不能进再继续学,没什么好难过的尽力就行了,坦然面对喽。
  • 放宽心吧,兄弟,加油的!

主管面试准备

  • 大概看了一下网上的东西,还是要好好准备一下算法,不要投入太多希望,能去就去,不能去也没有办法,我们尽力就好了。
  • 很重要的一部分还是要考察你的算法能力,所以要好好做一下目前所有能做到的算法。
算法题

算法题一

  • 给定一个n×2的二维数组,数组的每一行代表一个区间,如果一个区间被另一个区间包含就删掉该区间,返回剩下的所有区间。
  • 比如: [1 2]被[1 ,3]。
  • 这个已经做过了,具体连接如下
  • 对应链接

算法题二

  • dfs非递归二叉树高度,一开始写了个经典队列的bfs,意识到不对后开始改,最后没改完,就说了个暴力找到每个叶子的高度的思路。
  • 这个已经做过了,具体连接如下
  • 对应链接
其他

想通过实习获得什么?
九月份你会回学校吗?

个人提问准备

业务是什么?我会跟着您吗?
我先需要提前学习什么吗?

提问

数据库
  • 让我写了一个sql语句,然后问我如果这个sql语句查询很慢怎么办?
  • 建立索引,反问我索引是什么?底层实现是什么?
select count(*)
from stu
where sex ='male';
  • 我知道是使用索引,但是索引是要自己创建的,但是复习sql语句的时候,就没有练习到创建索引,现在自己这里再复习一下

创建针对sex的索引

create index id_sex on stu(sex);

使用索引覆盖

create index idx_sex_only on stu(sex);

表分区

  • 表stu很大,可以考虑按sex进行分区,查询只扫描相关分区
alter table stu partition by List(sex)(PARTITION p_male values in ('male'),PARTITION p_female values in ('female')
);

优化查询计划

  • 确保查询优化起选择最优的执行计划,使用EXPLAIN分析查询执行计划
EXPLAIN select count(*) from stu where sex='male';
普通索引和覆盖索引的区别
  • 普通索引
    • 普通所以你是为某个或者某些列创建的索引,借此来加速这些列的操作,数据库通过索引可以快速定位到匹配的行。
  • 覆盖索引
    • 索引包含了查询所需要的所有的列,查询只需要访问索引,而不需要访问数据库表的数据行,提高了查询性能。覆盖索引通常是所列索引,覆盖查询中涉及的所有列。
索引是什么?索引怎么加快数据库查询的?
  • 这个问题问的我真是痛心疾首,我知道B+树是MySQL中InnoDB的默认实现等等,但是他说不对,就是索引是怎么实现的,这个目录是怎么实现的,给我问懵逼了,所以挂了。不过我的底子确实太薄了。

正式回答

  • 索引是一种用于快速查找数据的一种数据结构。通过索引,数据库可以更快地找到和访问表中的数据行,无需扫描整个表

什么是索引?

  • 数据库表中一列或者多列的排序副本
  • 存储在一个特殊的数据结构中,通常是B+树或者哈希表,允许快速查找、插入和删除操作

创建索引的几种方式

  • 这个得会呀,不会创建索引,背了那么多没什么意义,人家问的就是怎么创建索引。
# 单列索引
create INDEX index_col on table_name(column_name);
# 多列索引
create INDEX index_cols on table_name(cols1,cols2);
# 唯一索引
create UNIQUE idx_unique on table_name(col);
# 全文索引
create FULLTEXT index idx_fulltext on table_name(column_name)

创建了索引,又是如何在select语句中使用的?

  • 一般情况下,数据库管理系统DBMS会自动选择最优的索引执行查询,不需要在SELECT中显示指明所以需要哪个索引。查询优化器负责分析查询,根据统计信息选择合适的索引优化查询性能。
  • 查看查询计划
    • 使用explain select * from students where age = 22;查看查询的执行计划,确认索引是否被使用。

索引是如何加快查询的?

  • 减少数据扫描
    • 没有索引的时候,需要扫描数据库的每一行(全表扫描),通过索引中的数据查找特定的行。
  • 提供排序顺序
    • 索引按照特定的顺序排序的,查询需要排序,索引不需要排序直接返回
  • 实现快速搜索
    • 允许通过二分查找快速定位数据
索引具体怎么实现的?以B+树为例,节点放了什么?
  • 非叶子节点只存储键值和指向子节点的指针,不存储实际数据。
  • 叶子节点存储键值及其对应的实际数据(或指向数据的指针),并且所有叶子节点通过链表连接在一起,便于范围查询。
    在这里插入图片描述
计算机网络
计算机网络有哪几个层
  • 这道题记得有点混乱,太久没看了,导致当时有点记不清楚了,不过最后又理回来了。
  • OSI的七层
    • 应用层
    • 表示层
    • 会话层
    • 传输层
    • 网络层
    • 数据链路层
    • 网络层
  • TCP/IP网络有的时候会是四层,有的时候会是五层,这里还是记录成五层吧
    • 应用层
    • 网络层
    • 传输层
    • 链路层
    • 物理层
为什么视频通话使用UDP,而不是TCP?为什么
  • 大爷的,今天早上刚看过,虽然当时答的磕磕巴巴,不过还在说出来了。
  • UDP具有更低的延迟,更高的实时性,可以容忍一定的丢包和乱序,保证了视频通话的流畅性和质量
  • TCP虽然提供可靠的传输服务,但是链接建立、流量控制、拥塞控制和重传机制引入了额外的延迟和不稳定性,不适合实时通信的需求。

更加细致地说

实时性

  • UDP
    • 无连接的传输协议,不需要建立链接就可以发送数据,没有三次握手和链接维护的过程,延迟更低,视频通话需要实时传输数据,任何延迟都会影响通话质量。
  • TCP
    • 面向连接的协议,需要建立链接,并且数据传输过程中需要确认和重传,会导致额外的延迟

丢包处理

  • UDP
    • 没有丢包重传机制,重不重传由应用程序自己决定,轻微丢包对于视频影响不大
  • TCP
    • TCP提供可靠传输,确保数据按照顺序到达并且不丢失
    • 某一个数据包丢失了,TCP会重传这个数据包,直到这个数据包受到确认。虽然保证了可靠性,但是会引入延迟和抖动,不利于通话的流畅性。
HTTP协议有什么?
  • 这部分我没有复习到,有点懵逼。
  • 今天早上刚看过,难受
    • 请求行
    • 请求头
    • 请求体

算法题

  • 二叉树的后续后续遍历,以及对应的更换二叉树的连接方式。
  • 这里整理了对应的链接,具体看链接。
  • 对应链接

反问

  • 虽然今天面试面的不好,不过还是想问一下,我需要提前学什么吗?
  • springboot,自己多做一些项目。

结果

  • 不知道呀,能进就进,我已经尽力了,之前几面我都没有准备,这次主管面还是准备了的。心平气和,尽力就好了,加油吧!!
  • 没进,回顾一下,其实回答正确的题目没几个,人家会很失望的,不过也好,不再抱有不该有的期望了。
  • 流程终止了,不知道为啥!

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

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

相关文章

自动预约申购 i茅台工具完善

自动预约申购茅台工具 概述新的改变界面预览 概述 今天刷到一个windows自动刷茅台的工具,是用wpf实现的,看到作者最后是2023年更新的,评论中有好多人提出一些需求,刚才在学习wpf,就试着完善了一下。 工具下载&#x…

【C++】文件处理(IO流)

文章目录 C IO流1. C语言IO2. CIO2.1 C标准IO流2.2 C文件IO流2.3 C IO 文件常用函数总结表2.4 C stringstream C IO流 回顾一下,C语言中IO输入输出的 1. C语言IO C语言中常用的输入输出函数有如下几种:前者是格式化标准输入输出,后者是格式化…

windows和linux下清空Redis

前言 在本文中,我们将详尽阐述在Windows与Linux操作系统中有效清除Redis缓存的实践方法,旨在为您提供清晰、高效的指导流程,确保数据管理的灵活性与效率。 windows下推荐两款可视化工具 Another Redis Desktop Manager 这是我用的最多也是最…

数据库原理与安全复习笔记(未完待续)

1 概念 产生与发展:人工管理阶段 → \to → 文件系统阶段 → \to → 数据库系统阶段。 数据库系统特点:数据的管理者(DBMS);数据结构化;数据共享性高,冗余度低,易于扩充&#xff…

ROS话题通信流程自定义数据格式

ROS话题通信流程自定义数据格式 需求流程实现步骤定义msg文件编辑配置文件编译 在 ROS 通信协议中,数据载体是一个较为重要组成部分,ROS 中通过 std_msgs 封装了一些原生的数据类型,比如:String、Int32、Int64、Char、Bool、Empty… 但是,这些…

从移动切换到电信IP:详细介绍两种方法

在当前的互联网环境中,用户可能会因为各种原因需要切换网络服务提供商,比如从移动切换到电信。这种切换不仅涉及到网络服务的变更,还可能意味着IP地址的改变。那么,移动的怎么切换成电信的IP?下面一起来了解一下吧。 方…

测试内容初步认知

测试流程 了解需求--需求评审--编写测试用例--测试用例评审(产品、开发、测试)--提测测试--bug管理(devops)--集成--集成回归--发布灰度包测试(灰度周期一周)----编写测试报告--发布上线 测试岗位划分 功能测试 负责编写测试用例,执行手动测试,记录并…

麦肯锡:量子传感究竟在何处可以发光发热

量子传感技术已经提供价值,潜在的应用案例可以塑造多个行业。有四种核心技术具有应用前景:固态自旋、中性原子、超导电路和离子阱,它们具有在广泛的物理属性上的传感能力,包括磁场、电场、旋转、温度、重力、时间和压力。选择哪种…

Python自动化(6)——图像模块

本文所述的方法都是基于前几章的后台点击,因此同样需要绑定窗口句柄。 Python自动化(6)——图像模块 识色 定点比色 def cv2CompareColorOneMatch(self, x, y, hexColor, _similar0, borderNone):startX 0startY 0similar _similar self.colorOffsetif bord…

基于Java协同过滤算法的电影推荐系统设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码数据库🌟 感兴趣的可以先收藏起来,…

Kotlin 中的解构

解构声明是 Kotlin 语言的一个特性,它允许我们从一个数据结构中提取多个变量,这样可以让我们的代码更加简洁易读,同时也提高了代码的可维护性。 在 Kotlin 中,解构可以用于多种数据类型,例如,列表&#xf…

几何内核开发-实现自己的NURBS曲线生成API

我去年有一篇帖子,介绍了NURBS曲线生成与显示的实现代码。 https://blog.csdn.net/stonewu/article/details/133387469?spm1001.2014.3001.5501文章浏览阅读323次,点赞4次,收藏2次。搞3D几何内核算法研究,必须学习NURBS样条曲线…

动手学深度学习(Pytorch版)代码实践 -卷积神经网络-25使用块的网络VGG

25使用块的网络VGG import torch from torch import nn import liliPytorch as lp import matplotlib.pyplot as plt# 定义VGG块 # num_convs: 卷积层的数量 # in_channels: 输入通道的数量 # out_channels: 输出通道的数量 def vgg_block(num_convs, in_channels, out_channel…

基于Springboot + vue 的抗疫物质管理系统的设计与实现

目录 📚 前言 📑摘要 📑系统流程 📚 系统架构设计 📚 数据库设计 📚 系统功能的具体实现 💬 系统登录注册 系统登录 登录界面 用户添加 💬 抗疫列表展示模块 区域信息管理 …

Codeforces Round 954 (Div. 3) A B C D

A. X Axis time limit per test: 2 second memory limit per test: 256 megabytes input: standard input output: standard output You are given three points with integer coordinates x 1 x_1 x1​, x 2 x_2 x2​, and x 3 x_3 x3​ on the X X X axis ( 1 ≤ x i ≤ …

MyBatis 源码分析-- SQL请求执行流程( Mapper 接口方法的执行的过程)

前言 前面我们从源码层面梳理了 SqlSessionFactory、SqlSession 的创建过程及 Mapper 获取过程,本篇我们继续分析一下 Mapper 接口方法的执行的过程,也就是 SQL 的执行流程。 Mybatis 相关知识传送门 初识 MyBatis 【MyBatis 核心概念】 MyBatis 源码…

Anaconda3 常用命令及配置

1、Anaconda是什么? 2、conda常用命令 系统环境:windows10 Anaconda版本:Anaconda3-2024.02-1-Windows-x86_64 2.1、虚拟环境管理 1、查看虚拟环境 conda env list conda info -e 2、创建虚拟环境 # 创建名为 pyenv 的虚拟环境 conda create --na…

计算机软件著作权申请流程及费用_快速登记_经验分享收藏级教程

最近需要申请计算机软件著作权,申请流程走了一遍,整理了分享给大家。软件著作权申请流程及费用,软著快速登记、软著材料及问题解答FAQ,阿里云百科阿里云计算机软件著作权登记20天下证,那么如何申请阿里云软件著作权登记…

MTK7628+MT7612 加PA定频数据

1、硬件型号TR726A5G121-DPA PC9.02.0017。如下所示: 2、WIFI5.8 AC模式 42(5120MHz)信道,80带宽 3、WIFI5.8 AC模式 38(5190MHz)信道,40带宽 4、WIFI5.8 AC模式 36(5180 MHz&…

股票分析学习

库: pandas to_datetime:它可以处理各种格式的日期和时间数据,并将其统一转换为 Pandas 可以理解和操作的内部日期时间格式。 matplotlib.pyplot 用户可以轻松地创建各种静态、动态、交互式和 3D 图形。 1. 绘制线图(plot()) …