字节飞书后端实习一面+二面(凉经)字节+腾讯ieg广告一面

字节这波是人生第一次面试

一面:

1.:

-2 -1 1 3 4 5 6,找出缺失的正整数,比如这个样例就是2,然后1 2 3 4 5缺失了6,我排了序然后就遍历一遍就找到了,然后问了时间复杂度空间复杂度。答的nlogn,然后面试官问有没有更优的,我说估计有On的吧,然后就继续了

2.问项目:

:看你简历上写了用redis+lua来保证某个时间段内限制用户访问的次数,这个是怎么实现的

:这个我答的是redisListvalue,这个List最长长度就是限制用户访问的次数。

追问:lua里面涉及了redis的什么命令

: <这个搜redis滑动窗口限流可以看到代码,这里就不展开了>

追问:为什么问lua?如果先get出来,在修改list再设置进去,会怎么样?

:为了保证原子性,如果先get出来再set进去会导致有多个请求同时过来的时候,最后一个修改的请求会让其他请求的修改丢失

3.

http常用状态码,以及见到这些错误之后的排查思路:

:

50x直接去看服务器日志

400请求参数错误,去看请求然后分析有没有问题哦

401权限错误 我只答了个一般是业务上直接返回的

403那时候没答出来,只记得是一个和权限有关的

404就是not found

4.mysql的引擎有哪些,索引有哪几种,索引实现的数据结构,使用索引要注意哪些点?

这个不展开了,老八股文了

5.下面哪些字段不适合做索引,学生表的学号、姓名、性别?

:性别,在性别上等值查询可能相当于全表扫描还可能要回表,失去了索引的意义

6.如果有a b两个字段,按b来排序,那应该怎么建索引?理由是什么?

b a,避免排序和回表

7.项目里用到的分布式锁

:当时redis是主从架构的,没用redlock,用的是setnx的原子性

8.你有什么问题要问?

我表现的怎么样?面试官回答不错。

一面非常顺利,当时还挺高兴的,让我万万没想到的是,二面才是噩梦的开始

二面:

1.     你平时用java对吧,你是22届毕业对吧?

:

2.假设操作系统内存是4GB,其中有2.5GBA进程占用了,操作系统本身占用0.5GB内存,这时候如果fork了这个进程,是否能成功,为什么?

:可以,答了copy on write

3.一开始问有没有见过进程的Z状态,没答出来就问了,进程有哪些状态:

答 新建 阻塞 运行 就绪 终结

追问:终结状态和在操作系统里彻底被回收的区别是什么?

这个瞎扯了点,盲猜了一个安全点

4.有了解过javagc机制吗?

答 有

追问 用java写项目的时候,有没有对jvm的参数进行一些调整?

-----绝望从这个地方开始-----

答 有,然后围绕着CMS+Parnew 的减少老年代GC展开了一系列的回答,

追问,那你们当时线上的配置是多少,多少G内存,然后你当时多少并发量,你通过把jvm的什么参数调整到多少,然后实现了老年代gc频率从多少到多少的转变?

这个直接就没防出去,然后他降低了难度,问我怎么预估参数,我说用操作的数据结构的大小乘个参数

追问这个参数是根据什么算的?jvm半年没复习了,当时学的忘了。

5.Linux cpu占用率 内存占用率,还有剩余内存 网络带宽怎么看,压测怎么对他们进行调整?

Cpu和内存占用率和剩余内存我答的用top,网络带宽占用了多少。

6.redis线上部署单机配置,几核几G的配置,能抗多少并发,网卡多少带宽,tps qps多少,这个疯狂追问,这波很尴尬,连续两个线上配置的问题都没答出来,因为以为实习不考这个,所以之前一直懒得亲自去拿各种配置去压。

7.问项目:

我写了redis因为主从复制延迟而拒绝的客户端的请求,然后我在客户端那做了一个降级,先把命令写在磁盘里,这个也是一波疯狂追问

有点忘了追问的什么,但是这个答的一般,而且还有个地方想了挺久才回答出来,这部分持续追问了18分钟,追问内容包括了,写的命令会不会丢失:这个我模仿rocketmq的放丢失消息机制说会,因为没有两阶段提交,而且就算写到磁盘里也可能因为在pageCache中而丢失

8.前面那些问题加起来问了40分钟了

9.看你简历写你了解Kubernetes,来问你一些问题?

:通过service去访问5个对等的pod,上游怎么知道pod在哪呢?

:serviceetcd里面拿到pod对应的5台机器的ip然后做负载均衡

追问:当时用的时候,pod的网络用的是什么网络?一个pod请求到另外一个pod是一个什么样的过程

:flannel,答的是UDP的那套方案,1.20之前(docker没被k8s抛弃之前)docker创建docker网桥,然后容器和宿主机之间通过veth pair虚拟设备来达到两个namespace之间进行通信,忘了答的啥,反正就是VTEP 设备监听,然后内核态数据流向flanneld进程包装成udp,然后拿到etcd的元信息,然后再宿主机上转发出去。这个其实答的不好,因为udp是已经被完全放弃的一个状态了。

10.项目中的难点

11.你有什么要问的,已经1个小时了

12.然后出了道算法题,给一个字符串,然后用5*分割成6,分割出来的每一部分的大小不超过600,打印出所有分割情况,然后他当时就给我一小时让我做,不能用暴力,那时候被前面的压测连环问搞破防了,然后就没心情了其实。



腾讯ieg广告一面(估计凉了,周三面的,今天没出结果,不过好像不是因为答不出来,估计是方向不合吧,毕竟腾讯不怎么用java):

1.     自我介绍:

2(简历写了).了解ElasticSearch?说一下ElasticSearch从写入数据到别的进程可以看到这个数据的整个流程?

:先写到一个buffer里面,同时把数据写到一个日志里面,然后每隔一秒,那个buffer里的数据会刷到segment file里,写入文件的时候先写pageCache,写到pageCache之后就可以搜到了

追问:ElasticSearch是实时的么

:不是,因为要先写到内存的一个buffer里然后过一段时间再写到磁盘里

3.(简历写了)说一下Zookeeper的集群模式,以及具体流程

:ZAB协议,然后对ZAB协议进行解释

4.解释paxosraft协议

5.redis集群模式(简历有写)有哪些,redis持久化的方案

答了哨兵和redis cluster,然后持久化就AOF RDB,然后AOFRDB什么时候会被用来恢复。

6.问为什么又用Zookeeper又用SpringCloud(简历有写)
我回答,springcloud更偏向于一种接口,然后可以有不同的实现,springcloudalibaba就是一种实现,而且我是在springcloud之前用的dubbo+ZK,而且

7.问完前面就只过了15分钟

8.然后就出了道题让我做,给一个字符串数组,打印出频率在前K的字符串,要求时间复杂度NlogK,我用了个堆+哈希,后面发现不行,然后就只用了堆,但是只用堆的时间复杂度为NlogN,他说要预处理一下,其实我写的时候面试官就去干别的了,然后我写完10分钟他才回来,然后这个其实我算没满足时间复杂度的要求?

腾讯这个感觉凉定了,算法题之前加起来只问了15分钟,虽然我都答出来了,然后再加上我做算法的时候面试官的反应,而且他在问完我第3个问题的时候,自说自话说了一句,怎么你用的这些技术我都没用过?其实这个我在当初选java这条路的时候就考虑过和腾讯不太兼容了,不过当时看到牛客网上java面经那么多就以为java很香,实际上在广东这边有点一言难尽(简历上除了他上面问的,我还写了RocketMQSpringBootSSMK8S,dockernginx,Netty,Dubbo),而且用的也全都是了解的字眼,其实我是希望他来问的,SpringBootNettyDubboZookeeper我都大概看过源码。。。我还想着写个了解把他们留着拿来当底牌主动输出,但是非java体系的根本不吃这套,不吃这套我还以为他们会考os和计网那块的八股文,也没料到这些也没考,考前我专门背了好久的八股文和java基础,这两场都完全不考。其实本来不想大三寒假就去实习的,感觉还差了挺大的火候,但是看着牛客网上很多大三去实习的面经,我就也想去试试,没想到。。。被虐的体无完肤,之前只去了解一下压测大概的理论,不亲手去测。。。现在自食恶果,然后本来把想去阿里、美团、京东、小米那些试试的,但是阿里美团这个时间点根本不要人,京东小米这些又在北京。现在开始慢慢理解,为什么我们学校的学长基本都是C++go派系的了,不夸张地说,18(22届毕业)的只有我一个人在搞java,其他后台要么php要么C++,要么就是go。寒假实习估计就没什么戏了,还是等暑期实习看看把,看看能不能到上海、杭州那边要java而且又招人比较多的地方,然后顺便开始转go,实践一下K8S,看看K8S的源码,最终还是想留广东的,不过阿里在杭州,hc又少(听说不怎么招应届生,当然要是阿里愿意要我的话,我还是愿意去杭州的),拼多多在上海。然后就是之前写的那个项目,他们要部署了,有两台内存256G内存的服务器,好像是浪潮的,都是24v,帮他们部署的时候,顺便把redisrocketmqelasticsearchmysql的压测,还有以前项目的全链路压测给做一下,防止再次被项目暴打吧,争取暑期能拿个大厂实习,然后秋招能收获个offer,最好是广东这边的。越想越觉得自己可悲,124号开始投简历,投了10几份就只有2个面试机会,还被我浪费掉了,看着周围那些同级的大佬靠着C++、客户端、前端拿了腾讯、头条的日常实习,真的好羡慕啊。


#实习##面经##腾讯##字节跳动##Java工程师#
全部评论
看完这个面经觉得楼主...强的一批沃日
38 回复 分享
发布于 2020-12-26 00:10
感觉你这两个面试的内容不典型,难度远高于平均水平…
4 回复 分享
发布于 2020-12-26 07:17
楼主已经很强了,Java实习面试都已经这么难了吗,比我秋招面的还难
2 回复 分享
发布于 2020-12-26 11:47
这也太难了吧,大厂实习都这样吗
2 回复 分享
发布于 2020-12-27 14:18
这个线上配置也太狠了吧
1 回复 分享
发布于 2020-12-25 23:57
楼主已经很强的啦,其实北京这边机会更多一些~
1 回复 分享
发布于 2020-12-26 09:52
楼主很强了,相比之下我感觉我问的都特别简单。。。太看运气了
1 回复 分享
发布于 2020-12-26 10:00
太详细了,感谢老哥😁
1 回复 分享
发布于 2020-12-26 10:53
拉到压测那个去看了下标题,居然是实习,感觉是被kpi了,说实话问2年以内的岗位问这种问题都是在搞心态。。应该是部门问题,字节深圳和腾讯的java系不多,字节北京还是有蛮多java的,也可以java转go
1 回复 分享
发布于 2020-12-26 10:57
同大三 框架没学几个 更别说源码了😢😢
1 回复 分享
发布于 2020-12-26 12:41
这强的离谱
1 回复 分享
发布于 2020-12-26 16:03
我感觉运气成分大,我面腾讯两面都是hard题,二面也是和你差不多,关于压测和配置的问题问得特别详细。正常的面经其实到不了这个难度,尤其是你还是实习。客观说句,java的机会还是比c++大得多,至少阿里美团京东等是以java为主。哦对了,百度你考虑吗?我们组最近刚好在招实习生,有意可私我😎
1 回复 分享
发布于 2020-12-26 17:06
老哥计院还是软院的呀
1 回复 分享
发布于 2021-08-30 11:46
楼主是真滴强,话说那个用堆做的题复杂度应该就是NlogK吧,没毛病啊
2 回复 分享
发布于 2020-12-26 00:33
Java真的很卷,为啥我师兄说暑期实习好找。。。
点赞 回复 分享
发布于 2020-12-25 23:48
这也太难了点吧
点赞 回复 分享
发布于 2020-12-26 12:46
楼主 想问问你的项目是啥呀
点赞 回复 分享
发布于 2020-12-26 13:15
这个时间点确实实习hc不多,很多都还在21届补录和春招😪
点赞 回复 分享
发布于 2020-12-26 14:39
你这有些问的比秋招都难,等你秋招应该很强很强了
点赞 回复 分享
发布于 2020-12-27 14:35
未来可期,同学继续加油
点赞 回复 分享
发布于 2020-12-27 20:22

相关推荐

评论
33
163
分享
牛客网
牛客企业服务