回馈牛客,3月份面经分享(华为校招,阿里腾讯美团实习)
一面 3月3号 60分钟+20笔试
熟悉哪种语言 JAVA以及Python
算法题 最大公共前缀 (一开始用前缀树做,后续调试出了问题。时间快到改用循环做)。
如何学习一门语言(整体局部整体局部)
JAVA:讲讲集合类(讲了List、Map等主要实现类,底层数据结构主要参数主要方法)
synchronized修饰代码块以及方法的区别;synchronized reentrantlock等重入锁以及readwritelock的区别?
基本数据类型为什么还有包装类(没答上来,扯了缓冲机制)(让基本数据类型拥有对象的特性,比如在哈希表插入的时候需要有hashcode,基本数据类型是没有的。所有都是相应的包装类提供的)
如何防止超卖(一开始不知道咋回答,然后说库存不够就关闭借口;然后说减库存是在数据库层面做的,再补充了多线程情况下某些变量可以用volatile修饰保证可见性)
成就最大的项目(讲了实习负责整个算法的部署,以及找到新的框架)
了解的数据结构或者算法,以及在实际中的应用(讲了二分在实习中的应用,以及链表配合哈希表实现LRU)
进一步追问排序算法原理,何为稳定不稳定,快排是否稳定
问了下如何看待开发和测试之间的关系,测试的意义,开发是否需要进行测试的培训
请问对面试表现评价或建议:
建议1、编码本身 熟练度不够,细节调试2、算法不够扎实,可以考虑多了解算法开拓思路3测试部分,需要提高测试意识,测试用例等要考虑详尽4考虑从系统工程的角度去看待项目
整体评价还行(基础不错?)
二面 3月17号 25分钟+20分钟
自我介绍
hashMap介绍下
数据库整体,如何优化(加索引);
然后没什么问题了 来做做题吧
Leetcode 1143 和1701 第一道很快做出来了,面试官让说下思路然后觉得没啥问题,问我要不要反问什么。我个***说要不再做一道 结果第二道卡了很久。。
后续反问面试官评价和学习建议:没给评价,只说转开发没什么关系,保持学习就可以。
三面 3月18号 30+12分钟
自我介绍
比赛经历
奖学金
挑一个最有成就感的经历(比赛或者社团)
社团,你学到什么,什么最有成就感
实习中的收获
对艰苦奋斗,长期艰苦奋斗怎么看
阿里巴巴 暑假实习 JAVA研发 已拿到意向书
一面 3月11号 40分钟+15分钟笔试
问了研究生学了哪些课,哪门最难,如何学习
如何学习
有去看JDK源码嘛?(打算扯整个集合类,扯到一半面试官说太多了,直接问hashmap如何put)
有开源或对外发布的成果吗?
你的这个项目具体做了什么?(讲了整体流程,具体扯了商品详情页以及下单接口如何使用redis以及乐观锁进行优化)
了解http嘛http报文的具体格式
了解数据库嘛数据库索引原理
笔试题:实现策略模式
面试评价:还不错,等下轮面试
二面 3月12号 40分钟+10分钟问答
讲一讲实习中比较有挑战或者意义的事情
之前是做算法实习,如何考虑找的是JAVA研发呢
讲讲对小目标的性能提升
讲讲秒杀项目基本实现以及如何考虑的优化
缓存数据库一致性如何考虑
数据库:事务ACID
JAVA:concurrentHashmap如何实现线程安全;双亲委派,以及原因;讲讲垃圾回收
操作系统:信号量如何理解
问了最近还有面试什么公司吗?如何考虑选择;以及实习到岗时间啥的
面试评价:能感觉到学习能力不错;JAVA技术的学习别局限于语言,可以考虑开源框架的应用与学习;大型的企业级应用要考虑架构以及设计;高内聚低耦合,设计原则与模式;
hr面 3月14号 30分钟
讲一下大学经历或者技术
为什么算法转后端
阿里java腾讯c++你怎么看 怎么选
阿里业务比较复杂高度比较高相比腾讯你怎么考虑
反问第一次hr面感觉我咋样 有啥建议(思考能力可以,希望在介绍项目经历的时候着重思考对自己有什么启发)
美团 暑假实习 后端开发 已OC
一面 3月16号 50分钟+10分钟
自我介绍
实习,目标检测怎么做的,特征怎么提的。。整个过程做了什么,为什么这么做,嵌入式设备部署做了什么。。(后面才知道优选部门会涉及AI+IOT+后端,怪不得会问算法和嵌入式。。)
数据库:索引,隔离级别,脏读。。主从结构,主从复制()
表经常增删改又经常查询,怎么优化 业界怎么做的
Linux常用命令,比如对文件分析怎么做(不断道歉,答曰只会cp rm。。)
BIO和NIO (NIO一开始答得稀烂,差点忘记是IO多路服用)
JAVA:synchronized lock的实现和区别,hashtable和hashmap的主要区别,JVM运行时数据划分和垃圾回收以及垃圾回收器,有没有具体调优过垃圾回收(答曰没有,只会原理)
新建线程有什么方法(只达到new thread和线程池,说不太会多线程)
遇到过什么难点,怎么解决的
redis集群
TCP3次握手,如何管理这些连接,4核16g的linux能建立多少个连接。。
单链表反转,写完后说不允许新建dump节点,怎么做。。
评价:只说还行,具体评价会录入系统
二面 3月18号 40+10+5分钟
自我介绍
在校最自豪的经历
最有挑战的事情
redis数据结构
mysql隔离级别,索引结构
http报文格式,各种请求码
算法题:不难
反问:有何建议,应届生如何设定自己的1/3/5年目标(面试官建议最好选对板块)
面试官有、小帅
oc 3月25号 20分钟:
薪资
拿到offer是否一定会来
实习时间
腾讯 暑假实习 后端开发 已hr面完
一面 75分钟
自我介绍
项目介绍,问得很细。项目遇到印象深刻的点或者是难点是什么(提到跨域的问题,追问为什么谷歌默认关闭跨域;答曰同源策略什么的。。);并发量是怎么测的QTS还是什么;如何思考优化思路;lru怎么实现的;如果要考虑次数的lru呢;创建订单接口,扣减库存,在transction里面悲观锁的吗;乐观锁version冲突的时候有其他方式解决嘛(面试官提示重试,或者队列);如果不开transction,两条语句能否实现相同功能(select for update;update);你说最后乐观锁你没有用version的字段,那会有什么问题吗(没考虑到,面试官后面说考虑是否原子操作,where stock》=。。)
计算机网络:TCP3次握手4次挥手;time_wait会造成什么问题(答端口与资源);追问如果都是短链接然后短时间内大量建立连接,怎么优化(四元组分析,增加ip)
数据库:隔离级别以及各种并发问题;如果一条语句update a=2 where c=1会是行锁嘛(不知道咋分析,后面提示说考虑隔离级别以及数据是否存在具体分析);
本来想问语言,听说c/c++/go都不了解只会java,就没接着问了
两道算法题,由于发的腾讯会议没有写代码,口述二叉树的深度,以及topK问题
面试评价:挺好的,但是具体学习建议或者查漏补缺对我还不太了解,给不上来;
二面 30分钟
自我介绍
项目介绍
计算机网络:讲讲对TCP的理解,TCP怎么保证可靠性的,TCP怎么流量控制的,TCP怎么重传的,为什么要有超时重传和快速重传,网络拥塞,丢包一定是拥塞的问题吗?怎么解决因为丢包误判为网络拥塞降低拥塞窗口而导致传输速率的下降(后面想到从RTT去判断)。。
问我以前没怎么编码吗 看我笔试都是空白的(答是之前的,最近准备周日再做)
面试官介绍自己的部门,TEG 主要做CDN以及网关方面的接入,后台开发,说让我周末做题后综合评估下
hr面:
个人经历
为何选择这个方向
怎么学习,怎么自学基础课
介绍一下自己的项目
工作地点,实习时间
已挂或者已拒:
蚂蚁集团Oceanbase 实习 一面 3月5号 40分钟
自我介绍
实习经历,主要做了什么
研究生项目做了啥,为什么是一年的
40亿整数 每个4个字节?1G内存。如何判断新的数在不在40亿中(不知道怎么估算。一开始讲布隆过滤器。提到不在的话一定不在,在的话可能会是误判。面试官问一定不能误判呢。我说没想法,但是能减少误判的概率,可以做多次不同的hash,多个index都置1.新来的数这些hash出来的index都要是1.面试官说你其实没考虑那四个数据,没估算。然后告诉我说其实刚好能把数据装进去。)
问了C++指针和引用的区别(直接放弃说C++不会)
乐观锁(讲了假设冲突少,实现方式version)
进程间通信(6种,共享内存扯到虚拟地址空间以及物理地址,消息队列也扯了)面试官评价这块了解的还不错
讲一下堆和栈(对操作系统的堆和栈没啥概念。。试探性问面试官操作系统的还是JAVA的,然后说操作系统的没概念。。强答了JAVA)
两个数组求交集(单个数组内可能有重复)
两个数组求交集(比如222 以及22 对应的输出要是22)
反问:
时间这么快 不再问问啥嘛?(面试官说,我这块主要考察考察基础,不用问了。后续结果如何要和部门其他人对接)
实习生进去主要做啥,有啥成长(前期数据库基本的性能调研,数据库执行器方面的优化等)
等我的建议(希望数据库别只停留在用的层面,如果想做数据库,还是需要更多的了解数据库如何实现的)
结果:感觉对我没啥兴趣,面完也感觉不好。遂直接投了其他部门。
民生科技 后端 一面 3月15号 20分钟
自我介绍
最近的项目介绍
缓存雪崩
讲讲object类
讲讲如何学习JAVA 看书还是?
为什么转后端
结果:通过,后续通知二面,不想继续面,拒绝了。
商汤 IT-JAVA 实习生 一面 3月16日 55分钟
自我介绍
项目介绍,主要流程
写多读少,为什么不用悲观锁而用乐观锁
直接问对volatile,synchronized,lock,cas四个的理解(JMM,CPU,重排,MESI,可见性,monitor,锁优化,锁升级,AQS,CLH队列,一口气讲完,讲到面试官顿了一顿)
对消息队列有没有理解
对限流以及削峰有没有理解
对设计模式有没有理解
对代理模式有了解吗,动态代理之类的
Springboot:AOP,IOP,注解,有没有前端,有没有部署,了不了解ngnix(这部分全程在道歉我不会我不太了解。。)
TCP/IP七层
http1.0/1.1的区别(从1.0讲到3.0)
TCP如何保证可靠性
MySQL索引,聚簇索引,唯一索引,全文索引
分库分表
MySQL读写分离
讲一下Spring的隔离级别,事务如何实现的(疯狂道歉,然后讲了下数据库的)
评价:感觉基础非常好,但是对框架还不太熟悉,建议多了解框架,对后续面试大厂很有帮助
结果:没下文
VIVO hr面后被拒
VIVO JAVA(android方向) 一面 3月15号 30分钟
本科主要学了什么
介绍最有挑战的一个项目
线程池的使用
查找重复数字的位置
单双链表 区别 具体场景
如何设计30add last 30 random find 30 random remove 20iter
多线程的同步,如何实现
死锁的原理,编程上如何避免
二面 HR面 3月19号 20分钟
自我介绍
最大冲击的事情
对vivo了解吗,怎么看的(了解不多,只知道做手机 广告很多,类似oppo)
有收到其他公司offer吗
反问:为啥只有1轮技术面(一面面试官已经是level比较高的小领导了,为了提升效率)流程走完要多久(大概1周内有结果)
#实习##面经##阿里巴巴##腾讯##美团##华为##Java工程师#