美团优选事业部前端实习二面面经



C语言和python、js的不同

前者编译型语言,后者解释型语言,前者强类型语语言,后者弱类型语言,前者面向过程,后者面向对象,前者有指针,后者没有但是复杂数据类型是隐形传递了指针的



编译型语言、解释型语言的异同

前者一次性将高级语言全部翻译成机器语言,后者翻译一句执行一句

都是高级语言,需要通过高级语言——汇编语言——



计算机网络:IP、TCP、UDP区别

IP网络层,TCP、UDP传输层,TCP保证交付,建立连接,UDP不保证可靠交付,无连接



使用TCP、UDP的协议有哪些应用场景

以面试系统为例,页面TCP,视频UDP,常见基于TCP协议的:HTTP、FTP、SMTP、POP3,常见基于UDP:DNS、HTTP3



网络为什么要分层:

分层制定标准,方便工程师开发



数据结构:

栈、队列是什么



 给一个字符串,字符串中含有[]{}()类型括号,写一个算法,判断字符串中的括号是否合法。(手写)

采用栈,为了方便用了大量switch,case,说优化思路,3种可以合并



分层遍历一个普通二叉树(广度优先)(手写)

使用队列

怎么优化,时间、空间复杂度

懵了,广度优先只会队列,时间、空间复杂度都是O(N)



完全二叉树、满二叉树

一开始说反了,满才是完全填满了



二叉搜索树是什么,时间空间复杂度

提到了中序遍历是从小到大顺序的,空间复杂度为O(N),讲了平均时间复杂度为O(log(N)),最坏情况,简单提了为O(N),红黑树等平衡二叉树



JS数组是怎么一回事

可以实现队列,栈的功能,用哈希表+链表优化的,简单数组可以和C语言数组一样是连续的内存空间



CSS预编译语言

讲了less用@,scss用$,可以计算,可以嵌套



操作系统了解吗

了解不太多,只知道一些基本概念

进程和线程区别

进程是系统进行资源分配基本单位,线程 是操作在进程之中有多个,是运作的基本单位

进程之间的通信方式

匿名管道、有名管道、套接字、共享内存,提到计网种应用层本质上就是进程之间的通信,端口就是一个进程



网络安全

XSS攻击及解决方式

跨站脚本攻击,注入脚本,采用转义字符(富文本编辑器不行),白名单(CSP忘了,就踢了概念)

SYN flood攻击

利用TCP3次握手,发送大量请求攻击服务器。将IP加入黑名单,超时断开



路由器、交换机区别

分别工作在网络层和数据链路层,路由器有DHCP分配IP,进行NAT转换



反问

#实习##面经##美团##前端工程师#
全部评论
我去,全是计算机基础啊,这前端面试头一次见😅
2 回复 分享
发布于 2021-03-28 08:50
使用队列实现分层遍历,空间复杂度貌似不是O(N)吧,毕竟感觉队列最多只保存两层的数据
点赞 回复 分享
发布于 2021-03-27 23:27
想请问一下lz,之前一面结束之后过了多久被通知二面了呀
点赞 回复 分享
发布于 2021-04-09 20:44

相关推荐

2024-12-03 09:59
北京邮电大学 Java
点赞 评论 收藏
分享
2024-12-29 11:08
湖南工业大学 Java
程序员牛肉:简历没什么大问题了。 而且不要再换项目了。三月份就开暑期实习了,现在都一月份了。实在来不及重新开一下项目了。把一个项目写完或许很快,但是把一个项目搞懂吃透并不简单。所以不要换项目了,把你简历上面的两个项目好好挖一挖吧。 具体 体现在:你能不能流利的说出你的项目的每一个功能点代码实现?你能不能说出在这块除了A技术之外,还有其他技术能够实现嘛?如果有其他技术能够实现,那你这块为什么选择了你当前用的这个技术?
投递牛客等公司
点赞 评论 收藏
分享
评论
3
27
分享

创作者周榜

更多
牛客网
牛客企业服务