微信读书一面,(自认为)含金量++
2021.9.7
微信读书一面
之前有过腾讯ieg的实习经历
(总长1小时30分钟左右·)
1. 自我介绍
2. 实习经历(25分钟):
2.1 数据表的分区是怎么实现的?
2.2 你说用到了索引去优化,为什么要用索引?业务场景是什么?(答:查询的数据量大,用了多列索引)
2.3 那针对这种场景,你选择用什么索引,为什么考虑用这种索引?(答:固定数量的条件查询)
2.4 你说有用到go的多协程去优化程序,场景是什么?
2.5 你说协程之间因为数据的原因有先后之行顺序,那在你写的程序里,协程之间怎么进行数据传递?
2.6 用channel传递数据,那channel实现的原理是什么?(这个不会,因为go底层了解的不多,盲猜了一个链表)
3. 算法(10分钟写 + 10分钟 解释):
3.1 给一个字符串仅包含“{ [ ( ) ] }" 六种字符,判断字符串是否合法,合法条件:字符串必须匹配且有优先级,即" { "一定在" [ "和" ( " 外面,例如"({})" , "([)]"就是不合法
3.2 最大子序和,leetcode原题
4. 基础部分 (40分钟):
4.1 进程线程协程,简单介绍一下,重点说一下区别
4.2 协程的出现是为了解决什么问题?
4.3 你说线程之间是相互独立的,那os怎么确保线程之间不会互相影响呢?比如现在有两个线程AB,A里有个私有变量M,os怎么确保B不会访问到M?或者说,os怎么确保线程之间不会“越界”?
4.4 进程间通信方式有哪些?
4.5 线程共享进程的内存会出现问题吗?怎么解决?有哪些解决方案?
4.6 你说读写锁写之间互斥读之间不互斥,那读和写互斥吗?(这个我一下子蒙了没想起来,我当时答了互斥)
4.7 我们应该都知道https有加密,那我想问下,https加密的是报文还是请求头?
4.8 https会加密url吗?
4.9 如果加密url,tcp又是怎么判断目的主机和端口的呢?
4.10 如果像你说的本地浏览器可以进行直接解密或者tcp不加密,那我为什么要先加密一遍?
4.11 如果不加密第二部分主机部分的话,那url第三部分的资源目的uri会加密吗?
4.12 redis有什么数据结构?
4.13 你在什么地方使用过redis?
4.14 redis的分布式锁是怎么实现的?是为了解决什么问题?
4.15 如果用redis去实现cache,但可用内存比较小,这时候就需要淘汰策略,如果让你去选择,你会怎么去淘汰数据?
4.16 如果一个key是热点key,怎么去预防它突然失效的问题?
5. 反问(5分钟)
5.1 工作地点?广州
5.2 需要学习什么?了解一下C++
#腾讯##面经#