实习分享(第五弹)
实习分享(第五弹)
编者按
欢迎大家来到19CS的实习分享会,从4月11日起,将会每天更新一位同学的面试经历和经验,也欢迎大家积极投稿。
2022暑期实习整理
所有的面试岗位都是Java开发实习生。
投递公司:
蚂蚁(base上海、杭州),携程(base上海),美团(base上海),恒生电子(杭州)
选择公司的原因
选择蚂蚁和恒生电子的原因很简单,因为想要去了解金融科技领域。蚂蚁有支付宝,恒生是金融科技公司。携程和美团我看中的是生活服务领域(携程的票务和美团的生活领域)。另一方面携程是Apoll开源项目的主要贡献者,去感受一下他们的注册配置中心也是不错的。。。
准备
无脑跟着java开发的路线走。我没有实验室,没有导师,没有科研,因此走开发的路似乎会轻松一些,因为这条路上,大家都缺少经验。直到上个寒假前,我也是没有任何开发技术的,算法不行,绩点拉胯,考研没兴趣,一切似乎都比较未知。但是上个寒假开始学习Java开发路线的一些基本常识框架,从Java web到Spring,再到Spring开发流程的各种各样的组件学习,比如SpringBoot,SpringCloud(springcloud是一堆组件构成的,东西比较多),之后学习了docker容器技术,方便搭建集群以及各种各样的工具的管理。。。。反正就是一堆,然后我抱着试一试的心态去进行面试。
投递简历
本人基本是通过官方渠道。有人关心内推的问题,我个人觉得是否内推无所谓,因为大部分企业内推只能帮你过简历关,实际上“复旦大学”已经足够帮你过简历关了。
面经
蚂蚁-数字金融线
第一场面试,准备不够充分,一面挂了。通过复盘,这是因为简历中写了很多技术点,但是这些技术点并没有准备充分,导致回答的时候不够好。
- 简单介绍项目
- 项目中用了mybatis,询问mybatis
- mybatis二级缓存
- 底层连接数据库的原理(我当时直接答JDBC,但没讲到后面的sqlSession相关,因此没有得到正面反馈)
- mysql
- 事务各种隔离级别
- mysql主从复制
- 算法题
- 反转链表
蚂蚁-支付宝事业线
目前已经面完hr面
一面
- 自我介绍,项目
- 你如何解决困难技术问题的
- Java ArrayList中删除所有满足某特定条件的元素的方法(iteration)
- 大数据量如何多次寻找topK(答:扔到数据库维护一个视图)
- 反问还有解决方法吗
- 答,使用redis的有序集合维护,balabala。。。
- 两个表,一个表大量数据,一个表少量数据,怎么求他们的交集?
- 剩下的问题忘了,就先这样吧
一试加面笔试(写了一道编程题,注意:编程题不是算法题)
- 写一个模型,这个模型需要管理多个服务器,用户可以在多个服务器(A,B,C,…)进行login操作,每次login都会向这个模型发送用户在哪一台服务器进行的,并且计数。你需要写一个函数,这个函数在每分钟对每台服务器的login次数进行排序。(考察点:线程安全,模型优化等等)。
- 我自己的思路是用executor的schdule调度管理,fixed_rate设置为1分钟,然后存放login次数的结构是哈希表,每个元素是一个LongAdder,保证线程安全,同时分段锁的时候提高效率。(应该有其他优化方法,虽然scheduledAtFixedRate拉胯,但是我只知道这个。。。。)
二面
突击面试,没有任何通知,直接一个电话打来说有时间吗,我们直接开面。我当时还在摆大烂。。。
基本没问啥,就批评了一下我项目太简单。我垃圾crud项目确实没啥亮点,我反驳接触开发时间不长,没有足够的时间沉淀技术
- 发展方向?
- 对技术底层有没有热情(我答源码会看,但是伤脑,如果有前辈引领,我会有更大的信心与动力)
- 我看你实际开发经验缺乏,你有没有了解JVM的模型?
- base地杭州,你可以吗?
hr面
也是突击面试,下午5点说可以立即面试吗?我说接下来有课,8点以后可以。
本来以为二面被嫌弃了一顿基本凉了,没想到进下一面了。
- 自我介绍
- 压力最大时候
- 选择最艰难的时候
- 讲一下你通过项目学到了什么
- 。。。一些和技术毫不相干的东西
携程
一面
基本都是八股,去牛客网上看看吧。
二面
稍微讲讲,基本都是针对项目问,问到你不会为止。比如我提到项目中mysql直接在text中存放json数据。面试官问text字段有没有字数限制,有问有没有其他解决思路,我回答可以转型mongodb,因为mongdb自带json存储。面试官反问,技术栈转型会带来什么问题?我tm咋知道,我就说了增加学习成本,可能出现意想不到的bug。面试官反问什么bug,,,反正给我整不会了。
提到spring和springboot,询问这两个的区别。我只答到springboot的autoconfiguration用于简化配置,“约定大于配置”的原则,不指定直接使用默认的,指定使用个性化的。主要强调sb是配置工具类,而spring时一个大框架,在spring中我们使用配置文件或者注解驱动进行Springbean的管理。
问到redis的缓存穿透和缓存击穿,以及他们的解决思路。
之后问了一下你最近在看什么书,喜欢读什么类型的书,你有什么爱好。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!