实习需要关注什么,简历写些什么东西当作产出

NVIDIA实习流程

岗位perf analyst intern 我九月底在boss投的,月底发邮件选时间面试,国庆节后一面,一面线上45min,问的专业问题比较少,类似于hr面问的,二面线下10月13号,两个面试官一人一个小时。第一个会问一些对nv产品的了解,以及自己玩游戏性能的理解,最后六道题做两三个,难度不算大,有排序有读代码,偏向广度。第二个问的比较细,包括docker,vm,性能多方面。

腾讯全流程,包含hr

这位牛友的WXG微信支付二面面经与我的《2027日常-腾讯微信支付开发支持工具平台监控组件全栈三面》题目一样,可以关注他的hr面与面委面

可以关注腾讯音乐

这位牛友的面经都超详细,推荐全看

26届美团暑期实习后端开发一面面经(面完马上约二面)

总结:项目+算法+围绕简历问八股,感觉是贴主面得最差劲的一次,比之前的腾讯和阿里都要差(背的八股记得不太熟练),结果面完不一会就约二面了有点出乎意料,3.25已oc #美团# #美团求职进展汇总# #Java# #后端# 首先自我介绍还是老套路把面试官往项目上引 1.问在项目中参与的角色,以及为什么做这个项目 答:个人项目,参照开源项目做的,为了深入学习Spring开发流程(略) 2.你在项目中redis和数据库的一致性保障怎么保障 答:采取“先更新数据库,再删除Redis缓存“的策略,引入消息队列,让消费者来删除缓存,如果失败可以重新消费,这种重试机制进一步保证了一致性。(补充:还可以通过订阅MySQL的binlog,用里面的数据库更新信息来操作更新缓存) 3.采用Kafka作为消息队列如何就能对系统进行解耦呢? 答:Kafka采用异步通信形式,将生产者和消费者解耦,生产者将消息发送到Kafka,消费者从Kafka中读取消息,生产者和消费者不再直接依赖于对方的实现,彼此之间不需要知道对方的存在,只通过消息队列来传递信息。这种模式使得两个系统之间的耦合度大大降低 4.那了解Spring微服务框架吗? 答:不了解,我的论坛系统项目是基于Spring Boot开发的,没有使用Spring Cloud 5.那Spring Boot和原生Spring之间有什么差别 答:原生Spring配置起来更为复杂,需要写很多的xml,而Spring Boot配置更为简单,开发起来可以更注重于业务逻辑而不是繁琐的配置 6.问项目二,你为什么会想去自己手写一个Spring框架 答:深入自己对Spring框架的理解,进一步的了解他的底层 7.那Spring的IOC你是怎么理解的 答:(我把IOC和依赖注入一起讲了,后面面试官提醒我只需要讲IOC),就是把需要自己通过代码进行管理的对象创建和依赖关系管理交给Spring容器,这减少了应用程序中的耦合度,提高了代码的可维护性和扩展性。 8.面试官发现我简历上手写Spring框架采用了TDD开发模式,说她们自己在工作中都很少会用到这种开发模式,感到很惊讶,询问我为什么使用TDD开发模式?(我跟着卡哥做的手写Spring,跟着用的TDD) 答:背诵了项目面试题里的TDD开发模式流程与好处 9.其实我只是想问你是因为什么导致你去采用这个TDD开发模式 答:(答了好处居然都不好使,我瞎编说是浏览文章时学习到了这个开发模式,所以就想应用一下试试看) 10.那你应用完这个开发模式后学到了什么? 答:因为是先写测试用例再写逻辑代码,使得代码错误率降低,开发出来的代码质量更高,学到了以后写代码前都认真准备相应测试用例,避免出现更多bug 11.jvm内存结构 答:(之前背过但有点忘了,甚至因为试图去想起来的时间太久,面试官还调侃我刚刚不会是去问ai了吧)粗略说了堆区和栈区 12.看你项目中用了ThreadLocal,说说用在哪 答:说在论坛项目中,获取当前登录角色,使用ThreadLoacl使得每个线程都能获得一份互相独立当前用户副本 13.那ThreadLocal的实现原理呢? 答:(之前用的时候粗看过,但是后面忘了)老实交代不熟悉 14.那你在项目中使用了哪些设计模式 答:创建Bean使用工厂模式,实现JDK动态代理和CGLIB代理使用了代理模式,许多代码块使用了模版方法模式,实现MVC时请求的传入处理过程采用了责任链模式 15.责任链模式优点 答:解耦,将每个阶段独立开来,可以对此进行单独配置扩展 16.那你使用责任链模式的时候,要是我中途一个阶段出现了问题,我前面的数据怎么进行回滚 答:(完了盲区)老实交代我做的MVC处理请求这里没有涉及事物的回滚,这方面我不熟悉 17.那我在一个代码块里大量使用了if-else,采用什么设计模式优化好 答:策略模式,将不同的逻辑封装成不同策略类中 18.数据库的隔离级别了解吗? 答:Read Uncommitted,Read Committed,Repeatable Read,Serializable 19.Repeatable Read具体是啥,怎么实现的 答:可重复读,就是多次读取数据是一致的,通过加共享锁和排他锁,或在MySQL中通过mvcc实现,原理就是通过read view… 20.那什么是排他锁? 答:施加了排他锁的数据,在给他施加排他锁的事务释放锁前,其他事务都无法读或写该数据 21.那你举例一个发生死锁的场景,并说解决方法 答:没答对(面后补充:假设这个数据库隔离等级为可重复读,比如我在一个订单表里,每次插入操作前想保证操作幂等性,先查查表里有没有这个id的订单,就执行select。。。for update,这时有两个不同的事务一个查了id为1007的,一个查了id为1008的,这时候两个事务在查找for update时都获取了间隙锁,因为间隙锁是可以兼容的,所以两个表都获得了,但是后面两个表要执行插入操作前要插入意向锁,但是意向锁不兼容间隙锁,两个事务都在等待对方释放锁,就造成了死锁。除了在设计层面避免出现死锁的场景,在发生死锁后可以通过设置事务等待锁的超时时间,超时则回滚避免死锁,或者添加死锁检测机制,检测到系统死锁就对事务进行回滚) 22.MySQL的索引了解吗?一级索引二级索引说一说? 答:了解,(八股背少了,一时没想起一级索引二级索引是啥)说了个主键索引和非主键索引 23.索引的底层实现是什么? 答:B+树,数据存储在叶子节点,节点直接像链表一样用指针相连,对查询范围数据很有效 24.(很明显对我MySQL不太满意)你们学校学MySQL了吗?Java呢? 答:学了MySQL,但Java是选修课 25.(面试官默认我是研究生,其实我是本科生)那你在学校实验室里和导师做哪方面研究呢? 答:说自己是本科生,没有导师做研究 26.那你在学校有和老师做什么研究吗? 答:有个大创项目,是无人机路径规划,但是是机器学习方面的,不是我的侧重点 27.那你实习能实习几个月,一周来几天? 答:我说我不是研究生学校束缚不了我,可以四月干到九月,一周出勤五天及以上 28.你自己的优势? 答:对新技术的学习比较热爱,学习能力和规划能力比较强,比如我的项目,Java以及Spring相关的学习都不是学校教学的,是我通过自己指定计划自学的,再运用到实际开发中来。 29.那你是怎么自学的? 答:csdn找文章,b站找视频,制定好学习路线,通过跟着视频、文章,或者阅读Spring的官方手册文档,循序渐进的进行学习 30.算法题 又是快速排序,之前腾讯面试也是快速排序,给了十五分钟 5分钟不到速通了,原本十五分钟后差不多就到时间了,后悔写太快了,导致后面问我有没答出来的 31.Redis缓存穿透、缓存击穿、缓存雪崩,及其解决方案 答:Redis三剑客,八股照着背 32.Redis主从复制 答:有主服务器和从服务器,Redis会将数据从主服务器复制到从服务器上,哨兵机制保证主服务器宕机就切换到从服务器,这样不至于主服务器宕机后Redis就无法使用 33.看了简历上写了GC,就问GC的的垃圾回收器有哪些 答:(后悔了面之前简历没有背牢)答非所问的回答了垃圾回收算法,因为回收器我记不得了只记得算法 34.你使用Kafka有遇到重复消费吗?重复消费会怎样? 答:重复消费会导致通知推送多次,比如QQ发一条消息应该只推送一条通知,重复消费的话推送多条通知 35.(面试官之前问出来我MySQL掌握不牢,最后两分钟继续发问MySQL)那sql如何优化?sql执行后底层是怎么样的? 答:瞎说了几个感觉的sql优化方式,然后执行后底层回答不知道(面后补充:sql优化首先从索引入手,可以尝试使用覆盖索引,这样可以避免查询时使用二级索引引发的回表问题,插入数据时多行插入,以及为数据库引入缓存等;以一条select语句为例,首先MySQL由Server层和存储引擎层组成,首先在Server层先经过连接器,通过用户输入的用户和密码尝试建立客户端与服务器的连接,连接完成后进行第二步,第二步查找缓存,Server以键值对的形式存储sql查询结果,key为sql语句,value为查询返回值,如果查找到对应的key则直接返回value,否则进行下一步,但是这个查找缓存的功能在经常更新里的数据库很鸡肋,在MySQL8.0之后就被删掉了,然后呢就Server层的解析器,解析SQL语句,首先进行词法分析,提出select,form这样的关键词,然后对sql进行语法分析,判断语法正确与否,正确就构建SQL语法树,不对直接返回报错,正确之后呢就进入SQL执行过程,首先预处理阶段,看看是否有这个表或是否有对应字段,然后进入优化器阶段,确定SQL的搜索方案(就是根据索引搜索成本选索引),然后执行器和引擎交互执行SQL。然后在引擎方面,如果select传进来是主键,就直接在主键索引建立的B+树,由根节点进行二分查找找到主键key的指针,再递归指针指向的节点,找到对应数据返回,如果传入的是二级索引,则要在二级索引树上找到主键索引再去重复上述过程,最终将找到的结果返回给客户端。) 反问流程: 感觉自己面得稀碎,都不好意思反问,直接道谢下播了 没想到刚面完一个多小时,美团就来电话约2面了

26届美团暑期实习后端开发二面面经(已oc)

总结:没问专业知识+闲聊+hard算法,36min(居然没问专业知识,一面感觉面得不好害怕是kpi面) #美团# #美团求职进展汇总# #Java# #后端# #美团二面# 最新进展:第二天就oc了 自我介绍,大二Cpp程序竞赛省奖+国奖,大三做独立全栈Java项目 1.你觉得C++和Java的区别 答:回答语法方面差别不大,主要区别在内存方面,cpp需要自己手动管理内存,有内存泄露风险,Java中的JVM有GC(垃圾自动处理机制),不用自己手动管理内存,会自动回收不被引用的对象,但正是因为Java有GC机制和JVM,所以运行速度要比cpp要慢一些。 2.那你学习JVM和GC有遇到什么困难吗 答:我学习的主要是理论方面知识,比如JVM的内存模型,GC的回收算法和回收器,因为这些都是Java隐式执行的,不需要我自己去操作调用,只学习理论方面对我来说没什么困难,主要就了解他的底层。 3.说说你在学校里最有成就的事 答:说了大二研究算法最后获得省奖、国奖;和大三独立做项目,花很多时间去学习新技术,最后项目功能完善的成功上线,获得巨大成就感 4.问我项目的开发过程,为什么我独立做,没有其他组员协助 答:老实交代以宿舍为单位分组做,舍友学习进度没有我相对那么好,也没有我那么热爱,就一个人做 5.你不会不爽吗?不去压力他们吗? 答:都一个宿舍的,和睦一点很有必要,我有能力多帮帮他们也挺好的 6.那如果你入职之后,组内有成员也不做事,让你多做,你会怎么办 答:如果他一时间抽不开身,我可以帮帮他多做一点,要是他一直这么干,我就要反映给领导了 7.你们宿舍的人打游戏吗?你和他们一起打吗? 答:都玩,但是我没和他们一起玩 8.你玩游戏多吗?都玩什么游戏? 答:玩的不算多,最喜欢玩《炉石传说》,有闲暇就会玩两把,从初中就开始玩了 9.炉石传说是偏策略的对吧?那你在项目开发中,有别人提出什么意见吗?你又是怎么做的? 答:有的,我会和班上其他高手一起讨论项目的开发,比如我的项目系统最先是将用户密码明文存到数据库的,但是和其他同学讨论,他们说我这样存不好,我就参考了他的意见,最后采取MD5加密与加盐的方式将密码以加密的形式存到数据库,这样即使我的后端数据库被攻破,也无法从中直接获取用户密码,进一步确保用户信息安全性。面对别人对我方案提出的意见,我都会虚心的接受,然后一起纳入我的考虑范围,我觉得别人能给我提意见这是很好的,能帮我考虑的更周全。 10.你现在在长春是吗?老家哪的? 答:是的,老家广c人 11.你平时喜欢什么体育锻炼,来释放自己的压力? 答:之前有健身,但是后面沉醉于研究算法和做项目,就有段时间没去了 12.如果现在让你入手一个新项目,你会怎么入手? 答:首先去阅读项目的文档,了解这个项目运行的基本逻辑,掌握项目的使用方法 13.还有呢? 答:假设我接手之后要负责后端数据库方面,那我就去仔细了解后端数据库方面的逻辑与构造,然后根据需求或者发生的问题去针对性的作出更改 14.如果项目里有涉及新技术呢? 答:新技术的话我反而会比较兴奋,因为我开发项目和做算法都是一直在学新的东西,还挺喜欢新的技术的,一门新的技术出现,我会去查资料、看文档、看相关视频,尽快的把这个新技术消化,然后运用到实际项目中来 15.你实习的话能几月到岗? 答:我说我时间比较自由,4月就可以到岗,可以干到9月、10月 16.那你学校的课程呢? 答:我说我必修课已经修完了,现在只剩下选修课 17.选修课没有要求吗? 答:说选修课教的都是很过时的技术,比如20多年的JavaWeb和jdbc,为了拿到学分我只需要完成期末的大作业就行,远比不上去企业学习前沿的技术来得实在 18.算法题:LeetCode 25. K 个一组翻转链表(查leetcode前都没发现居然是hard算法,还以为是mid) 这题是写过的,还是和之前一样速通ac了,耗时6分钟 这时候才过去半小时,面试官让我反问: 1.面试官负责什么业务? 2.实习薪资如何,能负担得起我过去租房居住吗? 结束,许愿oc,求求别是kpi面!

26届阿里云暑期实习Java开发一面面经

总结:项目+mid算法+计网八股,只没答上一个sql语句 #阿里云# #26暑期实习# #java# #计算机# #阿里# #阿里求职进展汇总# 贴主会更新每一个面试的面经,可以点进贴主主页查看其他面经(都会写的详细),可以关注我获得最新面经通知。 贴主的第二面(之前腾讯是第一面,这次更有经验了) 首先自我介绍,把面试官引到我擅长的项目上 1.询问项目的亮点 答:登录注册模块采用邮件注册,密码存储采用MD5加密与加盐,登录使用Kaptcha验证码验证,拦截器进行登录状态检查;使用Redis做本地缓存,使用Redis集合数据类型来处理赞、踩,相互关注;使用Spring的声明式事务管理保证数据的一致性;使用Kafka作为消息队列对系统进行解耦,在用户操作后通过消息队列异步处理推送,避免同步操作性能瓶颈 2.数据库存储的密码是明文还是加密 答:加密的,用户输入的明文密码拼上盐值加密后存入数据库 3.了解非对称加密和对称加密吗? 答:了解,对称加密用同一个密匙,非对称有一对密匙,一个公匙,一个私钥 4.哈希加密了解吗? 答:了解,我使用的MD5加密算法就是哈希加密算法 5.哈希加密对于对称加密和非对称加密的优点 答:计算速度快,能快速对数据进行加密处理,而且是单向加密不能解密,就算我的后端数据库被攻破,也无法从数据库存储的密码中还原密码 6.在项目中使用Spring和不使用相比Spring有什么好处? 答:细说了IOC和依赖注入优点,AOP优点,事务管理优点,MVC优点 7.项目中用到了什么设计模式 答:第二个项目手写Spring,创建Bean用了工厂模式,保证容器中一个Bean只有一个实例用了单例模式,实现JDK动态代理和CGLIB代理使用了代理模式,处理请求采用责任链模式等 8.讲一下责任链模式优缺点 答:优点是解耦,每个阶段可以单独进行配置与扩展;缺点是不好调试,定位哪一个处理者出问题得一个个排查,还有责任链太长会降低性能 9.你知道状态模式吗? 答:行为设计模式之一,允许对象在内部状态改变时改变他的行为,但是我在项目中没有实际应用这个模式,所以没说展开 10.享元模式知道吗? 答:结构性设计模式,目的是减少对象创建数量,从而降低内存占用,比如说在我的论坛项目里,像用户名,头像这些需要频繁储存的数据就可应用享元模式,把常用的用户基本信息作为享元对象存入Redis作本地缓存 11.你平时会看什么书吗? 答:平时基本在学校看教材,假期会阅读一些小说、杂志 12.你写代码最看重的一点是什么? 答:想了一会说可维护性,然后论证了可维护性的重要性 13.你觉得什么时候应该用事务,什么时候不应该用事务? 答:事务就是一组操作,我要保证这一组操作的原子性时就应该使用事务,要么全部完成,要么全部不做,避免出现数据不一致情况 14.看到我简介上的算法获奖经历,问我15分钟选一个难度的题目手撕,我怕15分钟写不出hard就选了中等 手撕算法-LeetCode原题反转链表2 7分钟速通 要求Java写,但是平常写算法都用的cpp,一开始写链表虚拟头结点用cpp写法导致报错,但改掉后成功ac 15.来一道场景题,有一个合同,合同会和很多个应用关联,问我创建几个表合适 答:创建三个表,一个是本身的合同表,一个是应用表,还有一个关联表,合同-应用关联表,关联表绑定两个外键 16.如果创建表式要求几张表同时成功或者同时失败,如何写Java代码保证事务一致性 答:使用Spring的声明式事务管理,使用@Transactional注解,就可以做到事务的原子性(同时成功或同时失败) 17.要求写出上面的场景题,查出合同表中的top 5个金额最高的,连带查询出相关应用信息 答:这里写了一会,对JOIN的运用不熟练,没能成功写出SQL语句,算是这个面试唯一没答上来的 18.(面试官1说另一个面试官要来考察一下我的基础)我在浏览器输入https://www.taobao.com后,背后会发生什么样的网络请求? 答:(窃喜,这是背的八股的第一大条)首先是DNS解析请求,…(过程省略);然后是TCP连接请求…(过程省略);然后就是HTTP请求,浏览器根据输入的url构造HTTP请求报文,…(过程省略);(说到这才发现是HTTPS)紧急补充,使用HTTPS协议,在TCP连接建立之后还会有一个SSL握手请求,会进行身份验证、密匙交换等操作,进一步保证信息安全性;最后页面加载完成还会有一些资源请求,比如CSS文件,JS文件; 19.说说HTTP请求数据逐层传输最后到二进制传输经历的过程 答:应用层HTTP协议把要传输的数据比如请求方法、请求头组成一个HTTP报文;然后HTTP报文到达传输层,传输层使用TCP或者UDP协议,TCP协议会给HTTP报文加上TCP头部,包含源端口号、目的端口号这些信息,根据三次握手建立可靠连接后,将封装好的TCP报文发出去;数据段到达网络层,网络层主要用IP协议,IP协议再给TCP数据段加上IP头部,包含源IP地址和目的IP地址;封装好的数据报来到链路层,链路层把IP数据报封装成帧加上帧头和帧尾,帧头包含源MAC地址和目的MAC地址,帧尾包含效验信息,然后就以2进制在链路层传播了 20.网络传输到网络层,是如何找到下一跳发往哪,根据什么协议和算法? 答:依靠路由协议,说了RIP和OSPF,RIP基于距离向量算法,…(省略原理),15跳不可达,收敛慢;OSPF协议基于链路状态算法,每个路由器会先了解周围链路状态,像数据结构里的图一样生成拓扑结构,然后把这些信息发送给网络中其他路由器,然后根据迪杰斯特拉算法计算出最短路径更新路由表,收敛快且适用于更大网络规模 21.你在学校里成绩如何 答:先说了基础核心课比如计网、数据结构、操作系统都学的很好,批斗了一下学校教的过时课程(20年前的破jdbc和web),说这些课我认为上的必要不大,所以没有学的很认真,这些课成绩差些,所以总体成绩不算很好,但是工作用的工程能力和算法能力锻炼的很好 22.你的教育背景不错,今天也看出你的基础也很扎实,为什么你不选择去做算法工程师而是选择做开发呢? 答:首先回答算法工程师要研究生起步,我对自己的规划就是本科不读研参加就业,而且在开发上我累计了一定的基础,做出了一定的成绩,也比较享受开发的成就感,而算法方面学了机器学习,感觉更偏向数学领域,就不是很感兴趣,最后还是决定选择做开发。 反问环节: 1.问了工作地点 答:北京 2.问了实习薪资 答:说他也不知道 结束,总用时1h

26届腾讯QQ暑期实习后台开发一面面经

#腾讯# #腾讯求职进展汇总# #腾讯2025实习生招聘# #计算机# #Java# 贴主会更新每一个面试的面经,可以点进贴主主页查看其他面经(都会写的详细),可以关注我获得最新面经通知。 总结基本纯八股,基本没有问项目,算法两道 贴主的第一次面试(3.11图里是3.10是因为延后了一天),全程十分的紧张。 首先面试官让自我介绍,应该是想从我的的介绍里引出问题,可是过于紧张只介绍了自己目前的大学大三的一名软件工程学生,没有谈到任何项目和获奖经历,面试官听完我讲完愣了一下,才开始转入面试 1.现在主推语言(先说大二Cpp,大三做项目转Java) 2.介绍一下java中的集合(先紧张卡壳了一下,然后讲了Collection和Map两方面,讲到Map的时候面试官继续发问) 3.说到HashMap,他是线程安全的吗?(回答不是,然后说有CurrentHashMap有线程安全) 4.CurrentHashMap怎么保证线程安全(回答使用了分段锁,介绍了分段锁机制) 5.那除了你刚刚说的CurrentHashMap还有什么方法保证HashMap线程安全(又答了个synchronizedMap,也是通过锁的机制保证线程安全) 6.那还有使得HashMap线程安全的其他方法吗(没答上来) 7.那CurrentHashMap相比于synchronizedMap,通过不同的加锁方式,哪一个性能更好(这我不知道也没答上来) 8.HashMap怎么解决冲突(细说了拉链法解决哈希冲突,提到了哈希表变大之后会变成红黑树存储) 9.红黑树应用于哈希表性能好在哪里?(我从时间复杂度上解释O(logn)优于O(n)) 10.还有其他的解决哈希冲突的方式吗?(想起来有线性探测法,但是说不出详细的) 11.查看简历后询问mysql包含哪些索引(组件索引,普通索引,唯一索引,全文索引,然后说了下索引工作方式) 12.mysql常见存储引擎(InnoDB,介绍了innoDB的机制) 13.InnoDB的底层数据结构(B+树,说了B+树的结构) 14.为什么不用B树呢?(先说B+树相对于B树的优点,其中提到使用B+树磁盘读写性能更高) 15.怎么使得读写性能更高?(从B+树存储和查找原理入手,B+树叶子结点存储数据,非叶子结点存储索引,从而使得每个节点存储更多索引信息,降低树的高度,B+树进行查找路径更短,所以磁盘读写操作更少) 16.详细讲讲为什么范围查找性能更好?(从B+树节点有序相连入手,叶子结点通过指针相连形成有序链表,使得查询一旦找到要查的的范围起始点,就可以沿着链表顺序快速访问,而且B+树结构非常适合二分查找,相对的时间复杂度会更低) 17.说B+树的时候提到了Redis也应用了有类似于B+树优势的数据结构,面试官直接抓住发问Redis使用情况(讲了项目里对Redis的使用) 18.Redis常用的数据结构(String项目里用来存储用户信息,set项目里使用来管理帖子赞踩以及并集管理共同关注,还有list和sorted set) 19.那Redis里的Hash你有用过吗?(又是Hash,这部分我背的不熟,老实交代用的不熟练) 20.Sorted Set的底层数据机构是什么?(先想起来有一个跳表,面试关追问还有吗,想了很久说压缩链表,并说只知道名字,不知道具体实现,因为我前面说到的都细致解释了) 21.问Redis持久化机制(回答两种,RDB持久化和AOF持久化) 22.马上询问RDB底层的运行原理和具体执行(说了自动配置和手动配置,提到BGSAVE) 23.追问BGSAVE具体执行(老实交代只记得这个命令,对底层执行还不清楚) 24.开始问计网,TCP和UDP(细说了TCP的三次握手和四次挥手和UDP传输快但是不可靠) 25.TCP的头部结构说一下(开始按顺序说TCP的头部存储的不同参数) 26.那头部里的校验和占多少位?(16位) 27.http中403错误码什么含义?(禁止访问,服务器拒绝客户端发送的请求,权限或者资源问题) 手撕算法,面试官调试腾讯会议上面的ide,调试了五分钟没搞好,让我自己直接在自己的ide上写 十五分钟内完成快速排序和二叉树中序遍历 用c++写,二叉树写的时候被要求不能用递归要用迭代法 算法都不难,但是因为没有腾讯会议上的输入样例提示,面试官也没说具体的输入样例 核心逻辑很快就写好了,但是样例的输入尤其是二叉树那里一时没处理好(向输入前序然后输出后序来着) 到时候面试官上来说因为没有在腾讯会议上写,就不要求运行写输入样例了,要求我细说两个算法的逻辑即可 28.快速排序——经典的分治算法,寻找一个基准数,将小于他的排左边,大于他的排在右边,然后递归处理左右两边 29.快排稳定吗?(不稳定) 30.细说快排不稳定的原因(依赖于交换操作,可能导致数值相等的元素排序后相对位置发生变化) 31.说几个稳定的排序算法(冒泡排序、插入排序、归并排序) 32.二叉树中序遍历——利用栈模拟递归过程,首先将根节点以及其左子节点一次入栈知道左节点为空,然后弹出栈顶节点,再将右子节点作为新的根节点,重复这个过程 到时间了,让我反问,不知道说什么,就问面试官,这是我的第一次面试,您认为我的表现如何,面试官官方回答:”我只是如实的记录你的面试表现然后把档案给上面的leader进行横向评估,这不由我说了算而由leader说了算。“ 也不知道这样反问稳不稳妥,说出去的时候其实就有点后悔了,然后向面试官道谢,面试结束。

美团后端暑期实习经历+S级转正心得分享

一、实习经历

转眼间在团子的四个月暑期实习也结束了,也拿到了相应的转正,之前答应牛友们会分享团子实习的体验,今天这篇文章就来喽

首先是美团的landing非常舒适,进入组内的新人都会分配资深的导师,还会有一篇帮助你在业务和工作上融入的融入文档,前期会让你先看文档摸索熟悉,后面按导师安排由浅入深的参与一些工作,比如最开始做一些简单的测试捋顺整个业务链路,到后面接手简单需求,再到参与组内高优先级的工作,成长曲线非常平滑;

然后必须夸夸我的神仙导师,不仅是我们组实力最强的技术骨干,为人也特别风趣幽默还长相酷似冯绍峰,分配工作的时候基本不会push不给压力、也教会了我许多东西,工作完成的好的时候也不吝赞赏,很好的带我融入了团队;还遇到了很好的ld,会认真看我们新人的日报、周报,时不时就会给答复激励我们,也把我们的工作成果记在心里,转正还给我开了高评级;

工作强度方面,因为我们组现在业务扩张期,排期排的比较紧,大家整体工作氛围还是比较累的,但是相对应的也能让实习生参与更多的工作,学到更多一线的知识

二、转正高评价心得

收到转正意向书之后,ld通知由于实习期间表现出色,后面会单独给我安排一个加签面,接下来是转正心得分享:

首先,我认为完成分配到手里的需求和工作是最基本的,重要的是怎么能让大家感受到你的自驱力和额外产出;因为我们业务组业务壁垒比较深,需要学习很多的业务相关知识,我这几个月其实就一直在学相关的业务,交到我们实习生手里的工作和需求一般都是比较简单的,单单完成这些东西我认为对系统以及业务的理解深度都是完全不够的。

所以每当我接手到一个需求和工作,基于某个服务进行开发,我完成开发之后就顺势的学习这个服务,比如这个服务提供什么功能、和上下游如何交互、主要处理哪些业务、相关的技术要点如何实现,我在空闲之余都会学习探索这些东西,然后总结到自己的文档,产出若干篇可以为团队后续新人复用学习的业务与系统梳理文档和SOP等等;基于这个习惯,我成为了小组中产出文档数量和质量最高的新人,ld也通过周报等方式肯定了我的产出,肯定了我业务和系统的理解,最终在转正评级时给予了我高评价;

三、题外话

兄弟们,现在已经离职回来准备秋招啦,未来我还会产出像找暑期实习那样的详细面经,想看的可以先点个关注哦,还有相关疑问想问的,我都会在评论区给兄弟们解答

#Java##秋招##美团求职进展汇总##美团##转正#

26届秋招字节后端一面面经详细版(已更新二、三面)

timeline:

当天投递半小时后约面,9.1一面,面完立即约二面(已OC,二、三面后续更新)

总结:

主要关注实习(30min),少量八股和场景(12min)+mid+hard算法两道(20min)

详细:

先自我介绍,重点讲解一下实习做的是什么业务

1.详细说一下你实习的整个系统,让我看看你对系统的理解

答:实习相关,略(这部分可以结合自己的实习内容,重点在于梳理整体的链路,你主要负责的服务位于系统上下游的位置,和哪些上下游进行交互,提供什么功能,为了完成什么业务)

2.你们系统如何保证分布式系统中的一致性?

答:适当扩展一些分布式一致性的八股,细说我们系统采用最终一致性的方案

3.你在实习中遇到最大的技术挑战是什么?

答:这个因人实习经历而异,但是每一轮面试基本都会问这个问题,需要重点关注

—————-开始八股—————-

4.询问我的语言,我回答cpp转Java,问我cpp和Java的区别

答:cpp翻译为机器码运行,而Java是翻译为字节码在JVM上运行,运行速度较cpp慢但是换来了更多平台的兼容性;以及cpp需要自己管理内存,不再引用的对象需要手动释放,而Java有自己的GC机制进行垃圾回收,不需要复杂的手动管理内存,减少内存泄露风险;以及还有一些类的继承上的差异以及指针有无的问题;

5.那Java的GC机制是怎样实现的?

答:详细回答四种垃圾回收算法(标记-清除,标记-整理,复制,分代回收)以及对应的垃圾回收器(CMS,G1,Serial,Parallel等)

6.什么是数据库事务,事务的基本特性是?

答:事务指的是我们对数据库的一系列操作,特效是ACID,a为原子性,事务要么全部执行成功提交要么全部失败回滚;c为一致性,比如转账扣钱,事务执行前后两方数据变化保持一致;i是隔离性,多个事务并发操作互相隔离,互不干扰;d是持久性,事务一旦提交结果将提交到数据库,系统崩溃也不丢失;

7.Redis有哪些常见数据机构?

答:首先是最基础的String,可以用来存储字符串、整数和浮点数;然后是List,双向链表实现的集合,支持范围查找和左右两边插入;以及Set,存储一个集合,可以用来去重,还可以计算交集和并集,以前做过一个论坛系统,用户的共同关注就可以使用计算交集得到;还有对Sorted Set,顾名思义就是排序的Set,基于跳表实现,可以自定义排序规则,可以应用于排行榜;还有Hash,便于进行对象的存储;

8.了解Redis热Key吗?如何解决热Key问题?

答:热Key是指在短时间内被高频访问的Key,可能导致该redis节点负载过高,响应变慢甚至宕机;解决方案我能想到两个,一个是做一个本地缓存缓存热Key数据,减少对Redis的访问;第二个方案是对热Key进行分片,将一个热Key通过哈希分片到不同的节点,减小对单节点的高频访问;

9.那现在有一个10g的大文件,里面存着不同的ip地址,你只有1g的内存,如何找出里面出现最多ip地址的top10?

答:把这个10g的大文件通过内存读入和写出,打散为100个文件,这样每个文件只有100m;在对100m的文件进行处理,使用哈希表对ip出现次数进行计数,遍历完100个文件,再维护一个容量为10的大根堆,从哈希表中拿出出现频次最多的10个;

10.如果里面ip地址重复的数量特别少,你这1g内存是不是还存不下你的哈希表呀?

答:我刚刚的方案确实考虑不周,那我干脆只用大根堆维护每个文件的前十个出现频次高的ip,遍历到到最后最坏情况只有1000个ip和他们的相应的出现次数,再把同ip的数量合并,取top10;(我感觉这个还是有疏漏的,无法避免非top10后面少累加)

—————-开始算法题—————-

11.来写算法题

题目一:输出二叉树节点的和

leetcode中mid难度,我用的dfs递归;

题目二:接雨水

leetcode第42题hard难度,我用的双指针;

—————-反问环节—————-

12.问了面试官业务

13.问了流程:常规是三面+HR,开大包会加面

#字节求职进展汇总##字节跳动##后端##字节##发面经攒人品#

26届秋招字节后端二+三面速通面经详细版(附timeline)

timeline: 9.1投递半小时后约面,9.2一面当场通过约二面:26届秋招字节后端一面面经详细版

9.4二面当场通过约三面,9.8(隔了个周末)三面当场通过约HR面,9.10HR面;已oc等待意向

二面: 总结:实习35min+算法拷打两道,无八股,总时长一小时,且无反问

先自我介绍,重点讲解一下实习做的是什么业务

1.详细说一下你实习的整个系统,让我看看你对系统的理解

答:实习相关,略(这部分可以结合自己的实习内容,重点在于梳理整体的链路,你主要负责的服务位于系统上下游的位置,和哪些上下游进行交互,提供什么功能,为了完成什么业务)

2.你们系统如何保证分布式系统中的一致性?

答:适当扩展一些分布式一致性的八股,细说我们系统采用最终一致性的方案

3.你在实习中遇到最大的挑战是什么?

答:这个因人实习经历而异,但是每一轮面试基本都问了这个问题,需要重点关注

4.(面试官看了我简历上程序设计竞赛的奖项很感兴趣)你打这些比赛都会用到什么算法呀?

答:比较多的是动态规划、贪心、图论算法等;

5.图论算法具体是哪些?

答:深度优先遍历、广度优先遍历、迪杰斯特拉算法、弗洛伊德算法、拓扑排序等;

6.这个贪心算法和动态规划算法具体是什么能说一下嘛?

答:贪心的话,就是从局部最优解能推出整体问题的最优解,比如给一个数组,要求取k个数字和最大,每次取里面剩下的最大的,最后就能得出整个问题的最优解;而动态规划是把一个大的问题分割成若干个子问题,然后通过子问题可以递推出后面的状态,需要根据题目设计相应递推公式;

7.动态规划这个我没怎么听明白,你能再细说一下吗?

答:这个相关概念我也不太好答,要根据题目设计dp数组含义,写出递推公式,要不面试官您给我出题吧,我结合题目来讲,毕竟算法这种比较抽象,光讲概念不好理解;

8.算法题dp*2

(1)求一个整数数组最长交替子序列(相邻数先增再减或者反之)长度,应该是原创题;动态规划解题,设两个dp数组,一个表示以递增开始的最长交替子序列长度,另一个表示递减,再根据相邻数字判断大小推出状态转移方程(>,<,=三种情况),最后max(dp[n],dp2[n])即为答案

(2)类似于leetcode377,背包问题

9.问算法平时在哪刷题,题量如何?

答:主要在leetcode,codeforce、卡码网等,目前leetcode800题左右

三面: 总结:实习20min+算法两道,无八股,总时长四十min,且无反问

先自我介绍,重点讲解一下实习做的是什么业务

1.实习部分基本同上,因为业务域有重合,基本爽聊实习的业务

2.聊完业务没问八股,直接上算法*2

(1)leetcode1249,删除无效的括号,附加需要用两种方式输出,使用栈和一个标记是否有效的数组可完成;

(2)应该是原创题,一个数组包含0,1,2,3,要求用O(n)的时间复杂度完成排序;和leetcode75题有相似之处,75采用三指针,这里相比要多一个元素,所以我多添加了一个指针,四指针顺利完成答题;

HR面告知通过后,说可能后续交叉面或者意向,等消息中,许愿一个意向

秋招京东科技后端一面(含后续)

背景信息:

美团实习,笔试全ak

总结:

15min实习+15min八股(结合简历上的Spring项目),无手撕

(已经意向,后续面经都会更新)

详细:

先自我介绍,然后把重点引到暑期实习上,自然而然的问实习

—实习—

1.给我讲讲你暑期实习着手于的系统,看看你对系统的理解

答:略(因人而异)

2.讲讲你实习中遇到的最大的技术挑战?

答:略(因人而异)

—八股—

3.那在美团的实习里,你主要用了哪些Java或Spring的技术你觉得有些技术深度的,咱们可以详细聊聊

答:我在这里通过一个需求说了Java中的LiteFlow,感兴趣的兄弟可以去查查看;

4.那这个LiteFlow的使用,是不是涉及到Java的设计模式,可不可以讲一下

答:LiteFlow的使用类似于设计模式中的责任链模式,将各个阶段的业务流程解耦,新增只需要写新代码插入到链中,修改特定业务流程也只需要改特定代码,符合开闭原则,便于后续维护;

5.明白了,那你对Spring AOP应该比较了解(简历上有项目),能详细说下吗?

答:AOP就是面向切面编程,可以看做把我们的核心业务代码环切,在运行前、运行时、或者运行后于切面织入特定通用逻辑功能,可以把核心业务代码和一些通用代码解耦,通过AOP在运行时织入程序中,减少对业务核心代码的侵入性,比如一些日志管理和事务管理等的通用功能代码都可以通过AOP织入;我最近在学习Spring AI,其中也通过AOP实现运行前织入,实现携带前后文同大模型交互;Spring AOP的实现依赖的是代理模式,通过原生JDK动态代理或CGLIB代理在运行时进行逻辑织入;

6.那AOP中有哪些核心概念?

答:Pointcut,比如我之前说的运行前、运行时、运行后,定义应该在程序的哪个运行点织入;Advice,即我在织入点织入的具体逻辑;Aspect,是pointcut和advice的结合体,表示一个横切关注的点;

7.那我再问一下关于Spring Bean的生命周期管理是怎样的?

答:第一个是定义阶段,比如我那个项目中,就要先通过BeanDefination先定义好相关的类名属性以及构造器依赖等;第二步是创建阶段,通过set注入或构造器注入去创建该Bean的实例;第三步是初始化阶段,通过定义阶段定义好的初始化方法,对Bean进行相关的注入完成初始化;第四个阶段就是Bean使用完成后的销毁阶段,如果定义了相关销毁方法,在销毁时也会执行;

8.创建一个Java对象,他在JVM里整个生命周期会经历几个区域?

答:首先这个Java类的类信息会存储在方法区上;该对象创建在堆上,如果按垃圾回收分代算法的角度来看,还会存在于堆上的新生代区或老年区;如果他被某些方法引用,栈中会有相关指针指向该对象;

9.那现在假设有这么一种情况,你运行的这个服务,机器的CPU和内存都飙高了,你会怎么去排查?

答:首先每个服务应该都会有相应的日志和埋点,我会先排查日志,检查哪里出现的异常日志最多,定位问题的源头;如果排查日志找不到问题,排查JVM,看看堆上是不是频繁的GC导致内存飙高,排查栈中是不是有线程死循环或阻塞导致CPU飙高;

10.最后一个技术问题,数据库中有一种叫回表查询,什么是回表查询,如何避免?

答:数据库的索引结构,数据都是存储在一级索引的B+树下,而二级索引里面存储的是一级索引,使用二级索引进行查询,就要查到一级索引后再去查数据,就叫回表查询;为了避免回表造成额外的IO开销,可以编制索引时使用覆盖索引,或者查询时优化查询的SQL;

—反问—

11.问了业务组具体做的业务

秋招京东科技后端二面(含后续)

背景信息:

美团实习,笔试全ak

总结:

感觉是面过最简单的一场,23min实习+7min八股,无手撕

还有二面面试官是我见过黑眼圈最重的人,一面面试官强者发型,难道说这就是东子的强度吗

(已经意向,其他面经请看主页)

详细:

先自我介绍,然后把重点引到暑期实习上,自然而然的问实习

—实习—

1.给我讲讲你暑期实习着手于的系统,看看你对系统的理解

答:略(因人而异)

2.讲讲你实习中遇到的挑战和复杂点?

答:略(因人而异)

3.讲讲你们的系统在稳定性上做过什么工作?

答:略

4.把刚刚说的凝练一下,用两三句话说

答:略

—八股—

5.JDK和JRE是什么

答:JDK是Java development kit,开发工具包,其中就包含JRE,JRE是Java runtime environment运行时环境,其中包含JVM;

6.那为什么要做这样的区分?

答:(我还真没印象,没答对,后面放正确答案)如果用户只运行Java程序而不自己进行开发,只用到JRE即可,而JDK包含开发所需要使用的工具,一个面向用户,一个面向开发者;

7.看到你的手写Spring项目上解决了Bean初始化的循环依赖问题,能说说如何解决的吗?

答:通过建立三级缓存解决循环依赖;一级缓存存储该对象的创建工厂,二级缓存存储该对象的原始对象,三级缓存存储完成属性注入初始化的对象;比如现在两个类,A依赖B,B依赖A,初始化A对象时,先将A的创建工厂置入一级缓存,此时对A进行属性注入,发现需要B,此时尝试初始化B,将B的创建工厂置入一级缓存当中,此时发现B依赖A,此时先检测一级缓存里有没有相应的创建工厂,有则取出创建工厂,利用工厂创建一个A的原始对象存入二级缓存,将二级缓存中的原始A注入B完成B的初始化;此时再将初始化好的B注入A,将完整的A放入三级缓存,这个A就是初始化完全的对象了;

—反问—

8.问了HR面是不是要线下还不报销

答:是的