腾讯 微信小店 (5.21 一面)
暑假实习
开局四道手撕 50min
实现地址冲突情况下的复制算法 memmove、PKCS#7 加密算法填充、LFU、链表排序
八股:
1. 你讲一下哈希表
- 为什么数据量大的时候要改成红黑树呢?一直用链表不行吗?
- 有关扩容,假如在数据量到达阈值时直接开新的哈希表进行扩容,那不会导致那一次的 set 操作用时特别久吗?有什么方案能保证这次 set 不会超时吗?
- 你说异步扩容,那假如正在扩容的时候旧的哈希表被填满了怎么办?
- 那你说满的话就将旧的哈希表锁住那和原本那个操作有什么不同呢?
- 那直接写入新哈希表的话并发冲突怎么解决呢?
- 你说的渐进式扩容具体是怎么实现的?
2. 讲一下进程、线程和协程
- 进程间通信、线程间通信
- 假如说有两台机器上的不同进程之间的不同线程,这两个线程之间想要通信怎么办呢?(我只回答了网络通信)
- 协程是更轻量的一个线程对吗?但是一个线程只能同时执行一个操作,那我利用这个线程直接串行执行不就行了吗?你使用协程还需要一些上下文管理、还会有切换的开销什么的?为什么会需要所谓的协程呢?(我对协程了解不多,而且java里面经也没怎么见过这个,被问死了)
开局四道手撕 50min
实现地址冲突情况下的复制算法 memmove、PKCS#7 加密算法填充、LFU、链表排序
八股:
1. 你讲一下哈希表
- 为什么数据量大的时候要改成红黑树呢?一直用链表不行吗?
- 有关扩容,假如在数据量到达阈值时直接开新的哈希表进行扩容,那不会导致那一次的 set 操作用时特别久吗?有什么方案能保证这次 set 不会超时吗?
- 你说异步扩容,那假如正在扩容的时候旧的哈希表被填满了怎么办?
- 那你说满的话就将旧的哈希表锁住那和原本那个操作有什么不同呢?
- 那直接写入新哈希表的话并发冲突怎么解决呢?
- 你说的渐进式扩容具体是怎么实现的?
2. 讲一下进程、线程和协程
- 进程间通信、线程间通信
- 假如说有两台机器上的不同进程之间的不同线程,这两个线程之间想要通信怎么办呢?(我只回答了网络通信)
- 协程是更轻量的一个线程对吗?但是一个线程只能同时执行一个操作,那我利用这个线程直接串行执行不就行了吗?你使用协程还需要一些上下文管理、还会有切换的开销什么的?为什么会需要所谓的协程呢?(我对协程了解不多,而且java里面经也没怎么见过这个,被问死了)
全部评论
佬,怎么样了,我被这个捞了,看你这个面经,感觉腾讯一如既往的底层拷打
佬,你也是华工的啊,四道手撕也太狠了吧
相关推荐
05-22 15:51
曲阜师范大学 Java 点赞 评论 收藏
分享
查看5道真题和解析