首页 > 腾讯-IEG-后台开发-一面凉经
头像
爱尾巴
编辑于 2020-08-30 14:27
+ 关注

腾讯-IEG-后台开发-一面凉经

上来面试官先详细介绍了一下他们的部门(光子游戏工作室)

然后上来就开始做题,发了题目链接过来,都是leetcode原题

leetcode 191 位1的个数

leetcode 347 前K个高频元素

这题打开之后发现我做过了,面试官就让我说了一下思路,然后直接算过

leetcode 146 LRU

LRU一开始我直接用了LinkedHashMap,写完后面试官让我别用LinkedHashMap,然后我就用LinkedList+HashMap来写,但是最后写完后测试有问题,我就???,这写过不知道多少遍的题目怎么就是不对???然后给面试官说了思路,然后就面试官就说过吧

找到错误原因了,在要往LRU里插一个key-value的时候,如果原本LRU里面存在这个key的话,需要将原来链表中的key删除掉,然后将这个key插入到链表的头部,但由于我写的LRU的key和value都是Integer类型,所以删除的时候调用了list的remove方法,需要用的是remove(Object o)而不是remove(int index)

把我写的原代码中的list.remove(key)改成list.remove(Integer.valueOf(key))就好了
实在是太蠢了,这种错误都会犯(敲脑壳)

然后介绍项目

秒杀怎么做的

如果访问量过高该怎么处理(消息队列做流量削峰、服务器搞集群做负载均衡)

那关于秒杀,在极端情况下,你知道最暴力的做法是什么吗?我说是不是直接在前端阶段就直接把一些请求扔了,面试官说没错,现在很多公司秒杀都是这么做的,反正秒杀对用户是黑盒的,用户看不到,我:难怪我每次抢东西总抢不到。。

然后问Redis,分布式锁如何实现

底层数据结构,Zset怎么实现的

跳跃表和红黑树的对比

为什么用跳跃表不用红黑树,跳跃表的时间复杂度如何

了解Redis底层是怎么用到第三方的内存分配器的吗(完全不了解)

讲一下Linux是怎么做内存管理的吧

Linux的内存布局是什么

知道内存碎片是怎么回事吗

Java的垃圾回收讲一下

select、poll、epoll讲一下

TCP挥手过程讲一下

time-wait作用

time-wait时其他访问过来了怎么办,可以连接吗

那怎么让他可以进行连接呢

知道如何取消time-wait这个过程吗

UDP讲一下你的理解,什么情况下用UDP

TCP的拥塞控制和流量控制有什么区别

各自是怎么实现的

拥塞控制的大致过程讲一下

反问:

让面试官评价一下

面试官说你笔试成绩还不错啊,腾讯笔试100分中能超过50分的还挺少的,你怎么一个简单的LRU没写出来呢?(我也懵逼中)

你在业务方面了解的还算不错,基础也还不错,但是我发现一些学Java比较多的同学,可能是由于Java本身的内存管理做得比较好吧,导致学Java多的人,对于底层的内存管理的细节都了解的不够清楚,对于像是Linux内存布局、内存管理、内存对齐之类的和底层内存相关的概念不是很清楚,下去多了解一下吧

面试官人还是很不错的,全程面试了将近100分钟,也是我秋招到现在面的最久的一个了

更多模拟面试

全部评论

(12) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐