- 面试心得
- 美团-到店事业群-餐饮SaaS
- 一面复盘记录
- JS/前端杂项
- 操作系统
- 计算机网络
- 算法题
- 二面复盘记录
- JS/前端杂项
- 操作系统
- 算法
- 阿里-钉钉-基础平台
- 一面复盘记录
- JS/前端杂项
- 操作系统
- 计算机网络
- 算法题
- 二面复盘记录
- JS/前端杂项
- hr面复盘记录
- 杂项
- 模板:
- 一面复盘记录
- JS/前端杂项
- 操作系统
- 计算机网络
- 算法题
- 准备时间: 准备春招的话一般寒假就可以开始了。算法练习(leetcode 热题100、企业题库CodeTop)、基础知识复习「时间不够可以直接看面经」(计网12、OS、HTML、CSS、JS等)
- 简历: 简历可以使用 超级简历。个人因为颜值方面为减分项所以不放照片。简历内容(教育经历、专业技能、科研经历、项目经历、实习经历、竞赛奖项),这几个板块越能突出个人能力和区分度的放在越前面。一些关键字可以加个粗(比如论文第一作者、专利发明人、项目负责人、专业排名等)。项目如果开源或者有部署,可以在简历上放代码地址或者访问网址。如果有高质量的博客账号也可以在简历中放上博客主页。
- 开始时间: 最早的一批应该在1、2月份,外企(亚马逊、微软、ebay、hulu)和一些大厂的提前批(BAT)会陆续开始。可以在3月初先投一些小厂来熟悉一下面试的流程以及注意事项。因为大厂的面试一般会记录面试评价,如果没有准备好或者不熟悉流程和注意事项贸然投递大厂面试,很有可能会留下不好的面评,其他面试官是可以看到面评记录的,会影响后续的面试成绩。在积累了一定的经验之后,3月中下旬可以开始发力,尝试一些开放了校招系统的大厂了,这时候会从容很多。
- 投递简历注意事项: 某些大厂的核心部门的面试非常卷,会有非常多人投递此类部门,为了降低面试成本,可能会存在卡学历现象(比如某部门不招双非院校学生)。
- 面试过程: 请对于每次面试都要仔细地做复盘。近几年因为疫情原因一般是线上面试,可以用手机提前开好录音功能后再开始面试。每次面试完都可以通过听录音来复盘面试的整个流程,并重新审视自己当时回答的答案,总结出每个公司的面经,以及自己做的不够好的地方,不断迭代。
- oc、意向书: 不要认为拿到oc(口头offer)或者意向书就问了,然后直接开摆。2022春招真的是给所有涉世未深的同学们一顿社会的毒打。大厂超发oc,你拒了中小厂的offer后告诉你,“不好意思,因为公司人才结构调整,我们部门没hc了”。有多少人因为等着阿里的offer拒了美团的、字节的,然后发现阿里锁hc?!。包括拿到意向书,也有可能被撕毁。所以请尽量多拿两个offer,最后再拒掉也不迟,毕竟应聘者和公司,都是池塘里的鱼。
- 拒掉offer又后悔: 如果你因为某些原因把offer拒掉了。但是后来又有点后悔。这时不妨联系一下hr(真的不好意思,因为学校/导师/实验室/疫情等等原因我未接受贵公司的offer,但是现在我这边的问题解决了,还是非常想来贵公司的,求给个机会补救一下)。说不定会出现转机(好多同学在阿里锁hc之后把之前拒掉的offer舔回来的案例)。
总体来说美团的面试相对还是对于八股的考察比较多的,但较为简单和基础,面试官也很温柔,比较友好。算法题也是比较基础的(可能前端考察的算法题较后端会简单一些)。
一面复盘记录 JS/前端杂项-
是否有使用过除了Vue以外的一些框架
-
闭包的作用及其产生的原理
-
JS垃圾回收机制有哪些
标记清除法
当变量进入执行环境时标记为“进入环境”,当变量离开执行环境时则被标记为“离开环境”,被标记为“进入环境”的变量是不能被回收的,因为它们正在被使用,而标记为“离开环境”的变量则可以被回收。「闭包中返回的函数就是进入环境中的,并未离开环境」
引用计数法
统计引用类型变量声明后被引用的次数,当次数为0时,该变量将被回收。但是引用计数的算法有一个缺点:循环引用。
在现代浏览器中,JS使用的垃圾回收机制是标记清除法,所以我们无需再担心循环引用带来的问题。 -
数据类型「7」,如何查看变量数据类型「3」
七种:Number、String、Boolean、Null、undefined、symbol、object「常用的有Array、function、Date」
查看变量数据类型:
用typeof:typeof x 「typeof A => Number」
用instanceof:x instanceof type 「(A instanceof Number) => true」object instanceof constructor:instanceof 运算符用于检测构造函数的 prototype 属性是否出现在某个实例对象的原型链上。
用变量的constructor属性:x.constructor === Number「null和undefined没有constructor属性」 -
变量在内存中的存储方式
基本数据类型:直接将值保存在栈内存中
引用数据类型:将地址保存在栈内存中,指向堆内存的空间
- 死锁产生的原因,条件有哪些
死锁是指多个进程在运行过程中因争夺资源而造成的一种僵局,若无外力作用则进程都无法向前推进
原因:不可剥夺资源的竞争、进程间推进顺序非法
四个必要条件「互斥请保不剥环路」
互斥条件「一段时间内资源仅供一个进程所使用」
请求和保持条件「进程一边请求资源一边保持已有资源」
不剥夺条件「进程已经获得的资源自能由自己释放,未使用完之前不能被剥夺」
环路等待条件「存在一个进程-资源的环形链」 - 进程间的通信方式有哪些
管道:上一阶段的输出作为下一阶段的输入「匿名管道/命名管道」
消息队列:按照独立的信息体进行消息发送
共享内存+信号量:申请一块虚拟内存空间,不同进程通过虚拟地址映射到物理地址进行访问,通过信号量解决冲突问题。
套接字 - 怎么在内存中做寻址(物理地址到逻辑地址)「段地址+偏移地址?」
先通过逻辑地址和页面大小得到页号和页内偏移
逻辑地址/页面大小=页号
逻辑地址 mod 页面大小=页内偏移
通过页号查找页表得到对应的物理区块
物理地址=物理区块x页大小+页内偏移
- TCP和IP的原理
- TCP保证可靠的方法
- 解释一下滑动窗口原理
- 解释一下拥塞控制
- 求子数组最大和-一维dp
- 前端的学习过程
学习路线图+课程查看+博客记录+同学交流 - 数组和链表的区别、二者各自的优点和缺点
数组是开辟连续的内存空间进行存储,优点是可以随机存取,缺点是插入或者删除元素的开销较大
链表所使用的内存空间不一定是连续的,它通过节点来保存值,还有一个指针空间指向下一个存储值的空间,优点是插入和删除链表节点的开销不大,但是无法做到随机存取
「JS里的数组本质上是对象,所以可以存任意类型的数据,相比与对象,数组的键只能是数字」
- 在操作系统层面,数组和链表在使用上的区别
电脑垃圾清理大师:处理碎片垃圾
内存碎片的产生和合并,数组上如果开辟连续空间可能剩余的空间大小不够每次有办法一次性申请较大空间。如果是链表可能就可以满足每次申请小空间的需求,但是容易把连续的内存空间进行分割,容易导致申请数组的时候没有整块的大空间
- 求二叉树的最小深度
- 给定两个代表非负数的链表,数字在链表中是反向存储的(链表头结点处的数字是个位数,第二个结点上的数字是十位数…),求这个两个数的和,结果也用链表表示。
阿里的一面面试官是小组ld,二面面试官是部门ld,三面就是hr面了,但是据说阿里的hr还是比较有话语权的,所以hr面也要用心准备,不可掉以轻心。总体来说钉钉的面试侧重点还是在项目上,问的问题比较开放,也会考虑个人的性格和人品。不太考察八股,但是我们可以在回答开放题的过程中有意识地加入一些背过的八股内容来充实我们的答案。注意前端考察的算法有可能也会考虑的JS的语法特性,或者实现某些CSS效果。
一面复盘记录 JS/前端杂项- 什么时候开始学前端,为什么学前端
- 项目里面有什么难点、值得show的地方
- 有没有做过canvas底层的代码编写
- 有没做过没用框架的项目,说说和用vue有什么区别
- 了解过虚拟DOM吗
因为原生的DOM信息量太大了,一个简单的DIV里面就包含了大量的数据,所以渲染和操作起来对于性能的开销较大。用虚拟DOM就是用VNode对其进行抽象,一方面配合diff算法检测出最小的需要改变的部分节点,实现局部刷新,优化性能。另一方面抽象了DOM可以实现跨平台,除了PC端还有移动端这些其他设备。 - 学习/做项目的过程中有没遇到什么困难
- 证明你为做前端所做的事/前端上做了什么努力
- 表达一下自己的优点和缺点/形容一下自己
- 有没做过什么学生工作
- 数据结构调整:平级/线性数据改成树状数据
线性数据:
树状数据:
- 数据的千分位表示
这里不放代码了哈,大家自己手打一遍印象更深嘞「绝对不是我想偷懒(手动狗头)」
- 为什么学前端
- 如何很好地还原用户的要求 / 设计页面
- 项目是如何做优化的
- http2和http1.1的区别
- 从url到页面渲染的过程
- 如果把css文件放在文档底部对渲染会有影响吗
- 怎么判断css是否加载成功,怎么动态加载css,怎么打包
- 如何动态加载js文件
- ajax的流程以及如何判断任务是否正确执行
- 项目里面如何做到实时更新的功能
- 做完项目的收获或者成就感
- 管理的团队的规模
- 你是如何沟通并解决团队和项目中的问题
- 为什么不做实验室的方向「软件测试」,而是做前端开发
- 大学和研究生成绩是多少,排名多少
- 目前都有哪些offer/你现在还在面哪几家厂
- 为什么选择该城市,职业发展规划,讲讲你未来 3~5 年内的个人成长规划
- 为什么选择前端
- 项目中遇到的困难
- 做项目过程中总体收获
- 学习上受到哪些挫折给你印象深刻
- 自己的优缺点
- 怎么与别人沟通
- 其他人给你出的,你觉得最有用的建议
- 抗压能力如何,如何解压,举个例子
- 你觉得自己今后需要不断加强,改进的点
- 选择阿里的原因



