腾讯wxg实习二面凉 12.21

时长 1h 30min (30min笔试题目+ 1h电话面试)

  • 三道算法题目 (都比较简单 Topk、判断t字符串是否是s字符串的子序列字串、二叉树A、B,判断B是否是A的子结构)

  • 自我介绍

  • 项目中的WebSocket

  • 介绍Redis的数据结构

  • Redis 的Hash类型扩容过程

  • Redis中字符串类型是怎么实现

  • 设计类似C中的free命令,提问没有指明对象对应内存长度怎么去释放相应的大小 (不太明白C具体实现,说了Java中会把对象引用中的Markword中存放了实例长度,标记为未使用,但具体Java做法其实是断开引用就可以了)

  • 跳表有了解吗(展开讲了一下源码的实现

  • 优化一个跳表插入过程,如果现在有一部分数据插入是是局部有序的 比如 1、10000、2、3、4、6、8、9....类似,怎么去优化源码的插入过程。(答得不太好)

  • MySQL的主从复制(binlog dump、从服务器读取线程,从服务器SQL线程)

  • 设想情景如果某个binlog已经使用了2年可能非常大,当新的从服务器开始连接的时候,需要读取这个binlog传输时间会很长,想要怎么做?

没有接触过,去类比了Redis中的AOF重写概念,根据数据库的当前信息进行重新生成binlog,会丢失之前的修改——解释是可能1年前的操作也默认不会去恢复了。(好蠢..

面试官提示为什么不直接转移数据库内容呢,(这里答偏了,我一直以为是去优化binlog大小。

  • JWT的结构,三个部分的组成,使用过程密钥存储地点?

Header 和 Payload都使用了base64进行加密, 密钥是存放在服务器端的。

他问了我既然前面两部份base64加密是对称性加密为什么还需要密钥??? 我回答说加盐后进行匹配不是需要密钥吗,太菜了不太清楚面试官想要表达的意思。

  • 追问我讲述的JWT如果被攻击者服务器获取应该怎么去保证认证安全问题

我说可能会通过一些其他层(如SSL)去保证信息在网络传输过程中的安全问题以及设计失效时长等(这个地方我不知道怎么回答,JWT本身设计是可以防止这个的吗...)

  • 设计一个IP黑名单信息,去进行IP拦截(也可能会是按网段拦截)

计网IP这一块太差了,子网掩码过滤IP不熟悉,导致理解题目不清楚。

我提出解决思路说可以对所有的黑名单IP分xxx.xxx.xxx.xxx四个部分进行前缀树构建,当ip进入时依次按段进行匹配,这样黑名单内IP会匹配到,非黑名单IP会提前退出。(被面试官怼说按这个是有点脱离实际的),太菜了

对比其他面试,个人认为腾讯确实面试好难。自己实力欠缺情况下心态问题也比较大,后面不断地重复自己的设计,面试官也不明确提出错误时候真的有点怀疑自己(直接提出说没有听懂,感觉不对)。问了很多实际问题,面试官对我偏八股的回答会追问实现具体细节,并加上实际的应用场景提出进行优化。个人实力太菜,面试官从实际开发角度出发询问,跟不太上他想要答案的思维逻辑,只能去牵扯相关的内容,导致回答逻辑性不紧密。

总结:基础不稳固,也需要多看看面经,积累一些实际的优化手段,在实现技术的时候多想想是否能够进一步优化,加强自己的架构描述能力(安慰自己还年轻

#腾讯##面试题目#
全部评论
base64那叫编码 密钥加密是将base64串进行sha256(或者指定的别的加密方式)加密这里需要用到密钥
1 回复 分享
发布于 2021-12-26 10:23
加密出来的东西叫签名
1 回复 分享
发布于 2021-12-26 10:23
好难啊,请问投的是什么岗位呀
点赞 回复 分享
发布于 2021-12-24 11:56
微信可真够难的
点赞 回复 分享
发布于 2021-12-26 21:26
跳表插入优化猜测是缓存前一次插入完毕后留下的链,这样有序插入的话应该不至于每次都从最高层到检索到最底层了.
点赞 回复 分享
发布于 2022-01-26 18:04

相关推荐

10-19 20:50
门头沟学院 Java
点赞 评论 收藏
分享
6 63 评论
分享
牛客网
牛客企业服务