首页 / 24届软开秋招面试经验大赏
#

24届软开秋招面试经验大赏

#
2287085次浏览 32176人互动
是不是等不及要分享面经领奖啦!现在就满足你! 分享越多,好礼越多,京东卡等你来领!
此刻你想和大家分享什么
热门 最新
头像
2023-09-16 14:41
门头沟学院 产品运营
面试官是自己的前女友!!!!
#面试官是我前女友# !!兄弟们超字数了开新帖更新!!!如题,跟前女友在一起快五年因为一些原因分手一年多了,期间再没联系过。昨天最后一轮hr面,邮件看到面试官跟前女友重名,心里想应该不会这么巧吧😭  没想到进了面试链接还真是她!!!!兄弟们,当时的心情真的是绝了,尴尬到飞起。然后还要继续面试!!!!开口我说了一句,好巧,没想到真是你😂,她一笑说别废话了来吧,自我介绍一下吧。 我说我还需要介绍吗?你不都知道??  她给我来了句同学分清场合哈,注意面试纪律。请你做一下自我介绍。我简单介绍了一下,然后开始问我以前不是说想做xxx吗?怎么投这个岗了?说说原因吧。我巴拉巴拉说了一通,她说这可不像你吧,再给你次机会重新说,我实话实说了她满意的点点头。算了其他的不说了,她太了解我了,全程面试被拷问,被挑刺,然鹅我一点办法都没有,因为她一句想清楚再回答哈,回答的内容有问题在我这里会减分的。😤😤😤 那个表情!!!!😭😭😭  估计凉咯,没戏了再加一句,和平分手哈~没故事!补充一点 她告诉我说本来是她同事面我然后她看到我简历很“开心”,就说她来对接我。大概半个多小时面完之后,她说面试结果后续会通知你的,有问题可以打邮件电话或者发邮件。然后她说:哦,不好意思忘记了,你手机号被我拉黑了,算了别打了,你等着吧9.16 更新吓我一跳帖子咋就突然火了。我会及时更新状态的满足大家的好奇心,秋招压力这么大就当是个乐子解解压吧。哈哈哈哈哈  流程依然亮着还没挂。 具体公司和职位就不说了,怕有熟人。 #如何判断面试是否凉了# #24届软开秋招面试经验大赏# #我发现了面试通关密码# 9.17更新  兄弟们,第一次体验被催更😂,今天没进度周末嘛,流程反正还没挂,估计得下周才能有进度。兄弟们说啥事业爱情双丰收估计难 能给事业我就满足了!!9.18更新  emmm还没挂,发邮件问了不回,应该是泡池子了😂9.19更新 兄弟们我来更新了!没想到帖子热度这么高受宠若惊!!解释一下为啥她面试官了我才毕业。我俩本科同学,她本科毕业工作了,我中间休学两年又读了研!所以读研读了个寂寞。 今日进度:邮件回复了内容为:请同学耐心等待,若有结。
UanxZzz:我超 想代入女主狠狠拷打楼主😋
点赞 评论 收藏
分享
10-10 11:06
已编辑
武汉理工大学 前端工程师
70场面试,复盘我遇到的有趣问题(四)
        今天分享一下美团和蔚来面试中遇到的一些问题。1.(蔚来二面)在forEach和map里面对遍历的值进行改变会影响原数组吗        认真背八股的同学肯定都记得,forEach不会返回新的数组,只是遍历每一项并做计算,map会返回新的数组,所以理所当然的想map不会改变原数组,forEach...会怎么样??想到这里就错了,这也是我当时的思路。        事实上这个问题跟上面那个八股完全没关系。试想一个函数,传递了参数进来并改变这个参数,会不会对原来数据进行改变呢?这个题是在靠这个,需要分类回答。        数组中数据为基本数据类型时,forEach和map都不会改变原数组;数据为引用数据类型时,map和forEach都会改变原数组。在使用 forEach 和 map 方法时,对引用类型元素的修改会直接反映在原始数组中。这是因为引用类型的元素实际上存储的是引用(内存地址),而非值本身。因此,通过引用可以访问和修改原始数组中的元素。而number,string,Boolean,null,undefined这些基本类型在栈内存中直接存储变量与值。2.(美团到家一面)为啥会出现箭头函数        这一个问题可以去b站渡一老师的小视频里看看。        肯定很多人跟我一样第一时间想到的是箭头函数和普通函数的区别,那为啥有这些区别,为啥要单独搞个箭头函数出来?难道只是为了简单吗。其实原因只有一个:消除函数的二义性。        在出现箭头函数之前,函数可以直接被调用,也可以被new当作构造函数使用,这就是函数的二义性。而这种二义性的存在是会给开发带来负担的,因为创建者并不知道未来函数的调用者是如何使用这个函数的,所以后来先在命名上做了规范:小写开头的函数是直接使用的,大写开头的是构造函数。但这种规范也不是强约束,毕竟既可以Number(),又可以new Number(),所以为了消除这种二义性,创造了箭头函数和class,箭头函数只能() => {},当作普通函数调用,而class只能被new,这就刚好对应二义性的两种用法,解决这种复杂情况了。————————10.10补充————————        感谢牛u的提示,这边还有一个点补充。        箭头函数的出现解决了this的复杂指向问题。        举例如图3所示,当调用show方法打印this.x的时候打印的是undefined。这是因为当代码执行到了setTimexout( )的时候,此时的this已经变成了window对象(setTimeout( )是window对象的方法),因此会在window上查找x,找不到,就输出undefined。        而如果是箭头函数,箭头函数的this是定义时就确定的,因此箭头函数的this指向的是obj,输出的就是obj.x。这样就解决了普通函数在当作回调函数传递的时候this变化带来的麻烦,否则就要用全局变量或者闭包之类的方法。3.(美团到家一面)obj对象中有一个方法,用obj.a()和(obj.a)()去调用分别输出什么(a方法中输出this.name,obj和全局都有一个name属性)?        这个题其实是当时考的一个输出题(图1)。下来尝试了一下,答案是没区别,都输出obj对象中的name。        这个题我一开始以为(obj.a)()这种调用就跟let b = obj.a,然后调用b()这种形式一样,但不是这样的,这个点可以记一下。        然后还要注意的一个点是,如果这个方法是箭头函数的形式(图2),那么this指向就不一样了,指向的是window。所以会在window上面去找name。那么这个时候输出什么?        是不是很多人脱口而出,“输出hong!”        恭喜各位掉到新坑了,这个时候输出是空(什么都没有:“”)        因为let和const定义的变量是不会挂到window对象身上的,如果改成var就能输出hong了,大家可以自行尝试一下、        (上面这个点个人认为还是很细的,一定要小心)                这几个是自己踩过的坑,第三点应该很多同学都会想错。        欢迎各位评论区交流~#24届软开秋招面试经验大赏##软件开发2024笔面经##美团##蔚来##前端#
点赞 评论 收藏
分享
70场面试,复盘我遇到的有趣问题(一)
        一直面试只能让你把会的背的更熟,但想进步还是得回头看看不会的问题。        今天回顾一下我遇到的一些有价值的问题,结合我自己的一些理解对这些问题尝试解答一下,相信对大家一些知识的理解也会有些帮助(有问题的话欢迎指出)。有用的话感谢大家点赞收藏送花~1.(滴滴提前批二面)Vue开启了keep alive之后会经历哪些生命周期?缓存了什么东西?        这个点我自己是没有仔细思考过的,当时面试官提问vue的生命周期,我提到了Vue开启keep alive前后生命周期的不同,面试官拓展的问了这个问题。        背八股的时候都背过,使用<keep-alive></keep-alive>组件包裹后可以在切换路由的时候不必销毁组件。并且会多出两个生命周期:activated和deactivated。其中activated在组件渲染的时候执行,deactivated在组件隐藏时执行,因此将这两个生命周期对比mounted和beforeDestory来学习。组件在初次渲染的时候会经历从beforeCreate到mounted这整个阶段,在后续切换的过程中则只会经历activated,随后的beforeUpdate和updated都会经历,隐藏时经历deactivated,最后销毁的时候才会经历beforeDestory和destoryed。        那么缓存了什么?我们知道在mounted阶段,虚拟DOM转为真实DOM,此时data,method,虚拟DOM都有了;而activated阶段可以不经历前面的钩子,直接挂载DOM,说明keep-alive缓存了虚拟DOM,并且还有所有的数据/方法,也就是缓存了组件实例。        如果面试阶段没有见过这个题,可以从每个生命周期干了什么开始联想,其中走到mounted阶段拥有了什么,那么actived阶段就也会有这些。2.(4399一面)http1.1的情况下,一个网页的图片是一张一张加载还是一批一批加载的?        首先回顾一下http1.1的特性:    ● 默认长连接,新增响应头Connection:keep-alive字段,保持TCP连接不断开    ● 管道化:基于上面长连接的基础,管道化可以不等第一个请求响应继续发送后面的请求,但响应的顺序还是按照请求的顺序返回    ● 缓存处理:新增catch-control字段    ● 断点传输机制。文件传输时如果遇到网络故障,可以从已经上传/下载好的地方继续请求,不用从头开始        其中第二点提到的管道化基本可以解答整个问题,虽然可以发送多个请求,但是返回的顺序还是有序的。因此虽然TCP最大连接数有6~8个,但是返回时还是顺序返回的。        但是需要注意,如果严谨一点的话还是要考虑一下预加载的情况。例如,当浏览器解析到 HTML 中的<link rel="prefetch">标签时,它可能会提前发起对指定资源(包括图片)的请求,这样在真正需要显示该图片时,可能已经加载完成或者部分加载,从而在一定程度上出现看似一批加载的情况。3.(Minimax一面)eval和new Function的this指向问题:        eval的this指向可以看这篇,很详细:https://ayk.moe/articles/javascript-change-this-in-eval-function/index.html        简单的说:eval函数只要是在全局直接运行或者是通过一个函数调用执行、作为对象属性被调用执行这种间接的执行方式,他的指向都是全局作用域。他不能直接被call/bind/apply改变this指向,改变的思路是在eval外面包一层函数,改变外面这个函数的this指向。        new Function:使用 new Function 创建的函数,它的 [[Environment]] 指向全局词法环境,而不是函数所在的外部词法环境。因此,我们不能在 new Function 中直接使用外部变量。        如果你对这块不熟悉,来看看这个:https://zh.javascript.info/new-function4.(Minimax二面)React:在if else里书写hooks,为什么不可以?        我用我自己比较容易理解的话术来简述一下关键原因,这里面的具体细节还是比较复杂的,有兴趣的牛u可以找找资料了解一下。        react的fiber树有两颗:        current fiber树: 当完成一次渲染之后,会产生一个current树,current会在commit阶段替换成真实的Dom树(可以看成虚拟dom转真实dom)。        workInProgress fiber树: 即将调和渲染的 fiber 树。再一次新的组件更新过程中,会从current复制一份作为workInProgress,更新完毕后,将当前的workInProgress树赋值给current树。        workInProgress tree上有一个memoizedState属性,在函数组件中,memoizedState在一次调和渲染过程中,以链表的形式存放hooks信息。        每一个hook函数执行,都会产生一个hook对象,里面存放了hook的当前信息,然后会以链表的形式串联每个hook对象,并赋值给workInProgress的memoizedState。        每次组件更新的时候,会先复制一份current tree到workInProgress tree,此时在workInProgress上进行更新。一旦在条件语句中声明hooks,在下一次函数组件更新,hooks链表结构,将会被破坏(某个节点可能被跳过),current树的memoizedState缓存hooks信息,和当前workInProgress不一致,如果涉及到读取state等操作,就会发生异常。                以上很多是自己的理解,可能讲述不准确但有助于自己理解,欢迎评论区留言指出错误~#面经##前端##滴滴##4399##minimax##24届软开秋招面试经验大赏#
点赞 评论 收藏
分享
09-06 23:51
已编辑
武汉大学 Java
美团后端二面 全方位拷打面经
💼公司岗位:美团 后端 核心本地商业-到店核心部门⏳投递进度条:9.3一面 9.4二面 9.6 Oc我愿称之为这是一场全方位的拷打,面试官是真的强的一批,不愧是核心部门,基本无八股,全方位深挖简历拷打场景问题,微服务,高并发编程,hard算法,拷打一个半小时 幸好抗下来了 感觉答得还不错 整体氛围蛮轻松基本在互相探讨寻求好的方案 不过问题是真的难顶啊二面面经:1:自我介绍2:介绍项目3:讲一下MQTT,为什么要用4:EMQX是什么,有了Kafka为什么要用MQTT5:你第二个模块高并发场景下如何保证缓存一致性的6:公司没有统一的高可用集群吗,需要部门自己搭建7:有没有测过QPS是多高,从整个架构分析一下大概QPS8:主要编码工作在哪里 难点在哪里9:ClihouHouse+Kafka如何搭建下发日志的,主要的字段有哪些10:详细讲解一下JWT,为什么要用JWT11:详细讲解一下RBAC角色权限模型12:对于Redis缓存穿透 你这里缓存无效对象 可能会出现什么问题13:你说到了布隆过滤器 那用布隆过滤器会有什么问题 是会多操作还是少操作14:如果用布隆过滤器 不存在key在布隆过滤器里查找到了 会直接返回正确吗 还是还有继续的业务操作15:用到全局异常处理器 在具体的业务中 我们需要对各层如controller service dao层进行具体的异常处理,那么每层的异常处理的解决,有什么区别和方法16:我们平时异常处理会打印日志信息,这个打印对系统的性能主要有什么影响,对于堆栈 jvm会有什么影响17:用xxl-job进行任务调度 为什么用它 会出现问题吗18:高并发场景下 xxl-job任务调度 如果有延迟怎么解决19:高并发场景下 xxl-job任务调度 如果有一部分操作出错了 怎么解决20:高并发场景下,如果你想提高xxl-job任务调度的性能,减少延迟 不会出现 你有什么解决办法21:高并发场景下,如果你用xxl-job任务调度 如何保证幂等性 如何保证不会多减库存或者少减库存22:刚刚说到了用锁来解决 那么你设计的话 锁的粒度是什么 根据什么来锁23:JVM的Full GC都有什么情况下会发生 怎么避免24:有没有用过监测JVM性能和回收的工具 都有哪些25:数据库的主从复制 读写分离 如何实现26:如何减少复制延迟 能不能完全避免 如果让你监控的话 你会怎么设计来监控27:能不能在业务代码层面上排查 让复制进度不会有差别28:synchronized和reentrantLock底层是如何实现的29:让你设计一个RPC框架你怎么设计30:Nacos的注册中心和配置中心详细讲一下31:说一下Dubbo的各个组件和作用32:Zookeeper的消息广播和奔溃恢复33:一道高并发编程题 通过分析 我发现得使用CompletableFuture异步获取结果 并进行任务编排34:一道sql题35:一道hard题反问还有好多问题记不得了 总之基本很少八股 全是场景题 和微服务 面试官最后跟我说 他不喜欢问八股觉得没意思很低端  所以全问的开放性场景题 总过过程来氛围挺好 有说有笑 但这问题一个比一个刁钻啊我敲 真难顶 #Java#  #后端#  #秋招#  #24届软开秋招面试经验大赏#  #美团#  #面经#  #java#
美团二面1673人在聊 查看70道真题和解析
点赞 评论 收藏
分享
09-23 21:27
复旦大学 Java
大厂面试八股流程总结
bg:25本科,两段实习总计约九个月,实习没打杂。秋招面试共23场,通过22场,挂了1场,预计陆续放出经验总结,各位权当随便看看,我面试场次也没那么多,属于个人经验。网上八股推荐(针对Java仔):小林coding,javaguide项目推荐:手写spring书籍推荐:《计算机网络:自顶向下方法》,《设计模式》,《深入理解java虚拟机》八股又要多又要精,没办法现在招聘市场就是这样。只是硬背八股非常容易造成换一个问法就答不了/改一点条件就答不了,建议还是要理解原理,花时间了解jvm远比反复背诵jvm八股来得深入。现在的八股不是随机抽几道题让你回答,而是根据你的简历里写到/面试官感兴趣的某一点技术开始提问,某些面试官还可能喜欢出场景题,让你在他的场景下回答。一个好的回答可以让面试官和你在某一方向深入探讨,某种程度上也可以避免知识点广泛铺开,自己回答不上来。所以怎么才能深入探讨?我认为是不局限于问题本身,例如:mysql有哪些索引?不要局限于陈列出答案,例如:啊我知道,有聚簇索引,非聚簇索引,联合索引等等而要选择性叙述出背后的内容:有聚簇索引,它基于b+树且叶子节点是完整数据;非聚簇索引,它需要回表;联合索引,一棵树上不止一个字段等等我举的例子很简单,这么做也很容易。但如果本身就是一道比较深入的问题呢?这就需要自己本身了解得多才能有这个效果。以我自己为例,我对数据库和缓存是有比较深入的理解了,相对而言对操作系统没有那么深入。而实际上面试过程中我也很少被深入提问操作系统,反而对我熟悉的数据库和缓存有过很多次讨论。我可以理解为这是因为在数据库的深入讨论中确实花费了很多时间,那么摊到我没那么自信的区域的时间就会少很多。 #牛客创作赏金赛#  #24届软开秋招面试经验大赏#  #我发现了面试通关密码#
点赞 评论 收藏
分享
头像
04-30 20:40
已编辑
美团_软件开发工程师
写点经验给Java选手,回馈牛友
楼主秋招春招加起来应该投了一百七八十家,很多都是秋招投了春招又投,投递大中小厂都有,投递之前会到offershow查查薪资,基本都是能开15k+的才投,大中小厂都oc过,最后选择了团子,分享点个人浅薄的经验吧,大佬们可以忽视。免责声明:以下经验完全主观,不保证一定最优,不保证一定适合你。1.实习很重要,楼主中下211本,科班,秋招没实习没奖,秋招大厂基本笔试完就挂(最后只有百度给面),其他给了面试的一面通过率也不高,就算自我感觉答的不错也一样挂,春招有一份实习经历之后,简历通过率明显提高(包括大厂),一面也大部分都能过(即使有的答的不好)2.算法hot100+codetop的高频题目面试基本够用了,一般大中厂才会要求面试手撕,具体企业要不要手撕可以看牛友们面经3.Java八股先看JavaGuide,然后小林coding(重点关照计网),但这两个加起来还是不够,我自己是经常看别人发的面经知道了一些上面两个没有但经常问的,然后自己去搜,保存了两个网页的收藏夹,但是收藏夹这玩意儿不好分享,大家有需要就去看我下面的图自己搜吧(里面有些是我简历项目相关的八股,觉得少见的可以不背),把我说的这些背完大部分面试八股都可以应对4.投递不要局限于Java后端开发,用Java简历一样可以投go,投客户端服务端,投测开,Java很卷,学历、简历一般般的一定要海投5.简历要好好写,很多面试官喜欢对着你的简历挖,可以有意引导面试官往你会的方面问,我实习的时候用了多线程线程池,我自己有重点准备这方面的知识,每次自我介绍我都会介绍这个实习的这个点,面试官也很喜欢问我这个6.好好把握秋招,有暑期实习一定要去,春招岗位少,hc少,有的甚至都不开 #美团# #秋招# #春招# #24届软开秋招面试经验大赏# #24届秋招同行攻略分享# #我发现了面试通关密码# #offer# #大家都开始春招面试了吗# #如何判断面试是否凉了# #实习,投递多份简历没人回复怎么办#
点赞 评论 收藏
分享
顺丰一面-凉经
是在一间小房子里面的,声音很嘈杂,面试官很多【0】首先是自我介绍【1】你对容器类,比如HashMap有什么了解HashMap底层是数组加链表,首先利用hashcode计算地址,当发生冲突的时候用拉链法解决冲突,当拉链足够长的时候将其转化为红黑树。如果是要线程安全,建议使用ConcurrentHashmap而不是hashtable,因为前者是分段加锁的,后者只用了个synchronized。【2】你是怎么理解容器的线程安全和线程不安全的,里面是做了什么实现容器的线程安全实现主要的实现还是加锁。如果是线程不安全,就是没加锁,可能会出现并发的问题,如果是线程安全就做了加锁的操作,举例了concurrenthashmap和hashtable以及arraylist,linkedlist和vector【3】了解可重入锁吗一个线程如果拿到了这个锁之后,释放了,接下来的代码里还可以重新拿到这个锁。但是普通的锁是不行的。【4】可重入锁用来解决一些什么样的问题出于业务需求,需要对一个资源有频繁的调度,所以需要让他有可重入的功能(可能回答的不大准确)【5】怎么理解乐观锁和悲观锁乐观锁假设不会出现并发问题,一旦出现并发问题是没法解决的。通常用的方法有版本记录法等,这个方法也是Es中间件经常用到的写入方法。当写入的时候版本发生变化了,说明这个数据的状态和我们之前操作的数据不是一致的状态了。悲观锁认为一定会发生这些问题,我们需要做好防范。比如悲观锁对于数据库的那几种不一致状态,读未提交,脏读,幻读,不可重复读等等,需要给他加锁。比如:读之前加S锁,写之前加X锁。【6】如何避免死锁 ;银行家算法。让资源变成非竞争的,资源编号法,只能按序号重小到大申请资源;不允许线程占有并申请资源,只能一次申请全部【7】如果有三个线程,一个只能打印a,一个只能打印b,一个只能打印c,如何确保有序用并发控制,设置资源变量,当值为1时只能打印a,为2时只能打印b,为3时只能打印c,每次打印完后给资源+1并且求余3;【8】对于线程池有了解么,简单说说线程池其实就是一种多线程处理形式,相比手动创建线程,它的优势在于能够根据软硬件资源对线程进行统一的管理,而且统一创建线程,销毁线程,从单个线程上看,使用线程的开销变为了执行任务的开销,节约了创建和销毁的开销【9】线程池的核心参数你知道么? 线程池的创建接口:ThreadPoolExecutor核心参数:1:核心线程数(corePoolSize)核心线程数的设计需要依据任务的处理时间和每秒产生的任务数量来确定,例如:执行一个任务需要0.1秒,系统百分之80的时间每秒都会产生100个任务,那么要想在1秒内处理完这100个任务,就需要10个线程,此时我们就可以设计核心线程数为10;当然实际情况不可能这么平均,所以我们一般按照8020原则设计即可,既按照百分之80的情况设计核心线程数,剩下的百分之20可以利用最大线程数处理;2:任务队列长度(workQueue)任务队列长度一般设计为:核心线程数/单个任务执行时间*2即可;例如上面的场景中,核心线程数设计为10,单个任务执行时间为0.1秒,则队列长度可以设计为200;3:最大线程数(maximumPoolSize)最大线程数的设计除了需要参照核心线程数的条件外,还需要参照系统每秒产生的最大任务数决定:例如:上述环境中,如果系统每秒最大产生的任务是1000个,那么,最大线程数=(最大任务数-任务队列长度)*单个任务执行时间;既: 最大线程数=(1000-200)*0.1=80个;4:最大空闲时间(keepAliveTime)这个参数的设计完全参考系统运行环境和硬件压力设定,没有固定的参考值,用户可以根据经验和系统产生任务的时间间隔合理设置一个值即可;【10】用过Mysql么?有哪些存储引擎?有什么区别MyISAM和MyISamMyISAM: 默认表类型,它是基于传统的ISAM类型,它是存储记录和文件的标准方法。不是事务安全的,而且不支持外键。InnoDB:支持事务安全的引擎,支持外键、行锁、事务是他的最大特点。【11】说一说innodb的底层实现。【12】针对sql语句怎么进行优化【13】inner join,左连接,右连接等有什么区别?基于什么样的考虑,去确定使用各种连接【14】建索引的依据时什么?(explain查瓶颈)【15】了解计算机网络么?tcp和udp的区别【16】讲讲三次握手和四次握手【17】TCP粘包的原因以及如何避免【18】你在项目中用到了es,kafka,quartz等,那么你在项目中主要实现了什么功能【19】定时任务计算热帖排行,你是怎么计算的,整个过程讲一下?定时任务是什么时候启动的?【20】Redis也支持做排行榜功能,你能简单说说么【21】在项目中遇到的挑战,难点ps:来自23年的面试凉经,那年似乎不咋招人,后来也毁约了不少#软件开发笔面经##牛客解忧铺##24届软开秋招面试经验大赏##如何判断面试是否凉了#
顺丰集团一面94人在聊 查看18道真题和解析
点赞 评论 收藏
分享
玩命加载中
牛客网
牛客企业服务