美团一面

感受

虽然挂了,但是感觉是自己的原因,太菜。美团其实问的并不过分,自己有很多东西没有复习到,之前一直想着TCP/IP是肯定要被问的,http只是了解了一下没有仔细琢磨,http就翻车了,问到什么是无状态时,我回答的是TCP的连接一次请求一次建立,太蠢了!所以问完这个问题直接结束了。问到死锁问题时,让我在在线编辑窗口中写一个死锁发生过程,具体的代码也没写出来,只是把过程用伪代码的形式写了一下,感觉他也没说什么。算法题的话这道题其实我是之前做过的,但是时间一长又给整完了,就连空间复杂度为O(n)的也没写出来,链表的操作个人感觉是要绕一点,算法题还是得多练以及多回顾。

在线编程题

92题反转链表

思路:先找到需要翻转的链表,记录下翻转部分的前一个节点和后一个节点,将范围内的节点先翻转过来,翻转后再串联起来

class Solution {public:ListNode* reverseList(ListNode* head) {if(head == nullptr) {return head;}ListNode *cur_node, *next_node;cur_node = head->next;head->next = nullptr;while(cur_node) {next_node = cur_node->next;cur_node->next = head;head = cur_node;cur_node = next_node;}return head;}ListNode* reverseBetween(ListNode* head, int left, int right) {if(head == nullptr || head->next == nullptr) {return head;}ListNode dummp_node = ListNode{-1, 0};dummp_node.next = head;ListNode *pre_node, *left_node, *right_node, *after_node;pre_node = &dummp_node;for(int i = 0; i < left - 1; i++) {pre_node = pre_node->next;}left_node = pre_node->next;right_node = pre_node;for(int i = 0; i < right - left + 1; i++) {right_node = right_node->next;}after_node = right_node->next;pre_node->next = nullptr;right_node->next = nullptr;left_node = reverseList(left_node);pre_node->next = left_node;ListNode *temp = left_node;while(temp->next != nullptr) {temp = temp->next;}temp->next = after_node;return dummp_node.next;}
};

问题

介绍完美团业务之后,你有什么问题吗?

自我介绍?

你的职业规划是什么?

对于后台开发技术你是怎么学习的?

你的项目中最大的困难是什么,你是怎么解决的?

高并发和高可用是指什么?

高并发是指在一段时间内能够处理的任务数量,高可用是指服务器在遇到一些问题时可以继续提供服务,不会崩溃;

进程和线程的区别?

1.进程是资源分配的最小单位,线程是资源调度的最小单位
2.进程中可以包含一个或多个线程,线程共享进程中的公共资源,但是也有独有的资源,如寄存器和栈,寄存器保存一些指令信息,因为每个线程的执行状态是不一样的,需要记录程序执行的位置,栈保存每个线程的局部变量
3.进程与进程之间是独立的,而同一个进程的某一个线程崩溃的话,其他线程也会崩溃。
4.线程的创建、切换、销毁都要比进程消耗的时间短。
5.同一进程的线程间数据交互效率更好,因为共享进程的资源,不需要经过内核。

进程间通信方式?(我提到了信号量)

1.匿名管道(针对父子进程情况)
2.命名管道
3.信号量
4.队列
5.共享内存
6.socket

信号量是怎么实现进程间通信的?

信号量一般是和共享内存搭配起来一起实现进程间的通信,因为在使用共享内存的过程中,会涉及在同一时间多个进程对共享内存进行读写操作,信号量保证了进程间通信的互斥和同步。

死锁问题是什么,你可以写出来死锁的demo吗?

假设有两个线程A,B,两个锁mutex_A, mutex_B,在A线程执行过程中先尝试获得mutex_A,再获得mutex_B, 而在B线程执行过程中先尝试获得mutex_B,再获得mutex_A,这样A,B分别拿到了mutex_B, mutex_A,一直等待下一个锁,进入死锁状态;

死锁问题该怎么解决?

就上个例子而言,将获得锁的顺序一致就可以;都是先获得mutex_A, 再获得mutex_B;

TCP和UDP介绍一下?

TCP是面向连接的、可靠的、基于字节流的传输层通信协议,UDP是无连接的。

TCP是怎么实现可靠传输的?

1.ACK响应机制
2.同步序列号保证数据包顺序

TCP的流量控制和拥塞控制介绍一下?

流量控制只与接收端的缓存区大小有关,是通过滑动窗口实现的,是指在不考虑网络的情况下接受段可以接受的数据大小;
拥塞控制与网络情况有关,通过拥塞窗口来实现,在滑动窗口内根据网络拥塞情况调整。拥塞窗口的调整过程有慢启动、拥塞避免、超时重传/快速重传,
1.在慢启动阶段,拥塞窗口起始值为1,每收到一个ACK,将窗口值加1,是一个指数增长过程。
2.窗口值大于ssthresh门限值时,进入拥塞避免阶段,窗口每次增加1,线性增长
3.窗口不可能一直增加下去,当出现超时时(收不到ACK),进入超时重传,ssthresh设置为当前窗口大小的一半,窗口值设置为1。
4.如果是收到3个连续的ACK说明网络环境还可以,只是一些莫名其妙的原因丢了一个包,进入快速重传阶段,当前窗口值;ssthresh = cwnd / 2;cwnd = ssthresh + 3(这个3是指收到了3个ACK);再次进入拥塞避免,线性增加窗口大小。

HTTP协议了解吗,为什么说他是无状态协议?

HTTP是超文本传输协议,无状态是指服务器不会去记录HTTP状态,如果需要完成一些关联性操作时比较麻烦。但是可以使用cookie技术来解决;

你还有什么想问的吗?

美团一面--后台开发相关推荐

  1. 美团点评后台开发实习生面经

    美团点评后台开发实习生面经 一轮技术面 二轮技术面 HR通知offer 本人北京某普通211大学计算机硕士,5月24号在美团官网投简历,5月27号面试官打电话约面试时间,5月30号去北京望京恒电大厦美 ...

  2. 美团点评后台开发历年习题练习

    文章目录 美团点评2017秋招笔试真题(1)-后台开发 美团点评2017秋招笔试真题(2)-后台开发 美团点评2017秋招笔试真题(1)-后台开发 1. 下述解决死锁的方法中,属于死锁预防策略的是?资 ...

  3. 美团(美团酒店)后台开发实习生一面(2021-4-13)

    牛客网视频面试,约50分钟.我投的是计算机视觉实习生,3月19号做的笔试(4道编程题+3道多选题),然后4月6号给我发邮件,说我投的岗位投录比是15:1,让我重新选择一个意向的岗位,然后我选择了后台开 ...

  4. 美团(美团酒店)后台开发实习生二面(2021-4-15)

    牛客网视频面试,约30分钟. 1. 自我介绍. 2. 让我介绍我最出色的一个项目,然后针对性问了一些问题,比如遇到的难点,怎么解决之类的. 3. 然后做了两道编程题,一道滑动窗口题(最开始理解错了用d ...

  5. 美团(美团酒店)后台开发实习生HR面试(2021-4-20)

    电话面试,约20分钟. 1. 问高考成绩,考研成绩,本科和研究生阶段的成绩和获奖情况. 2. 细问我参加的抽烟打电话识别竞赛我负责的模块,队伍平时怎么讨论. 3. 问我是否转语言开发(因为我是C++, ...

  6. 记录美团java后台开发面试经历

    有些我记不清了,大概记得的就这些 一面: 1.给了一道编程题,从方格中的某一点怎么去到另外的点,有多少种走法 2.数据库联合索引,比如用的是A_B_C,给出几种场景,问在搜索的时候会什么时候会用到索引 ...

  7. 阿里秒挂,疯狂复习半个月,拿下美团offer(后台开发JAVA岗)

    美团后台开发JAVA岗:三面技术+HR面试 本来以为阿里面试至少能撑到二面,结果却秒挂了,呜呜伤心~回来后发愤图强,疯狂复习刷题半月(小小提示一下:文末有分享我的 复习刷题资料,可免费分享~),又重新 ...

  8. 美团点评2018校园春季招聘后台开发工程师笔试经验

    笔试公司:美团点评 笔试岗位:后台开发工程师 笔试时间:2018年3月22日19:00-21:20 笔试形式:赛码网在线做题 笔试回忆: 先做的是第一部分逻辑推理题,比如给你列出几个数字,让你推出下一 ...

  9. 美团点评武汉场后台开发

    美团点评武汉场后台开发 一面: 二叉树的非递归遍历. 用stack实现队列. ftp的断点续传怎么实现的(项目) tcp的socket编程优化,提高效率. 输入网址到浏览器出现界面的整个过程. 无序任 ...

最新文章

  1. 7-2 然后是几点 (C语言)
  2. rundll32.exe文件详解
  3. 基于openfire+smack的Android、消息推送服务
  4. PHP处理Checkbox复选框表单提交
  5. MySQL:日期函数、时间函数总结
  6. Java语言编程过程
  7. 运用递归实现快速排序算法(二分排序)
  8. aspen稳态导出动态_Aspen Dynamics在控制中的应用
  9. MySQL Front订单信息表,mysqlfront
  10. php提取网页mp3,怎样提取网页视频中的音频文件
  11. 联想微型计算机安装Win7,联想c340如何安装win7_联想c430一体机改win7系统步骤
  12. 无线传感器网络实验与作业总结
  13. Matlab绘图常用设置及函数
  14. github上的优秀android开源项目 大全 真是太他妈的全了!!!!!!
  15. .net System.Web.Mail发送邮件 (已过时)
  16. mysql迅_迅搜(xunsearch) - 开源免费中文全文搜索引擎|PHP全文检索|mysql全文检索|站内搜索...
  17. dnf跨几服务器比较稳定,DNF:跨六土豪最多?理性分析各大跨区现状
  18. 转:windows.DNS.如何用自己的服务器做 DNS 域名解析,如何创建域名服务器?
  19. 抢做意大利岛主?刘强东两月套现66亿 疑一次性5.6亿“紧急转账”急购欧洲海上皇宫
  20. Ansible awx基础配置(容器化部署)和使用

热门文章

  1. c语言 建立测井数据结构体,给定C语言的数据结构 struct T { int w; union T { char c; int i; dou...
  2. settimeout一定要清除么?
  3. 阿里巴巴字体图标使用方法
  4. MMDetection(三):公开数据集上测试和训练模型
  5. char和varchar的区别
  6. C语言中%*s,%*c 是什么意思(还有%*.*s,%-*.*s)
  7. 自动化测试之:python+unittest+selenium
  8. 知网论文 caj 转 pdf 方法【带目录且文字可选的pdf,非图片】
  9. Android 什么是Hook
  10. tab切换组件nz-tab