2023.12.4(微派网络)

421 阅读4分钟

青藤之恋一面

  1. 自我介绍
  2. 我们知道golang里头的map遍历是无序的,那该如何得到一个有序的遍历结果?
  3. map如果发生了并发读写,会出现什么问题吗?
  4. 那这个panic可以被捕获的吗?
  5. 并发安全是什么,那我们在实际的golang并发编程中应该注意什么,一般会怎么解决一些并发隐患问题?
  6. go中的切片是怎样进行动态扩容的?
  7. 那工作中如何尽量避免触发slice的扩容呢?
  8. 这段代码会输出什么?
func TestFunc() {
	for i := 0; i < 10; i++ {
		go func() {
                    fmt.Println("i = ", i)
		}()
	}
}
  1. 那你帮忙改成按预期打印出0-9的10个数,不需要考虑顺序
  2. 有没有更优雅的写法?
  3. 那假设我现在想讲并发数控制在最多只有3个协程在运行,而不是每次for遍历都起一个新的协程,该怎么改?
  4. 使用channel的时候有什么注意事项?
  5. (问一些网络相关的)比如说,通过一些抓包工具抓到了一些http接口,然后就可以写脚本模拟客户端请求(直接可以把一些cookie和body信息截下来),并修改其中的一些数据,那么这个时候服务器该怎么识别出这些请求入参是否被人篡改过?
  6. 有了解过什么常用的数据签名算法吗?
  7. 那假设现在我不篡改了,我把抓到的请求完全拷贝出来,多次发送?该如何处理?
  8. 有没有更优的方式?没走进service层就拦住?
  9. 算法题:链表两数相加 leetcode.cn/problems/ad…
  10. 反问

2023.12.13二面(交叉面)

  1. 自我介绍
  2. 为什么想要换工作
  3. 介绍一个你自己觉得做得最深入的一个项目,重点讲讲其中的亮点是什么?(过程中面试官围绕一些点也有提问,但主要是对业务规则上不大理解)
  4. 你们这个是实时算的还是一天一算?
  5. 收费周期是按返利报告的生成周期(双周报或月报),那要是预算超太多了没有问题吗?
  6. 这里头提到的乐观锁是怎么实现的
  7. 这里头用的数据库是什么?
  8. MySQL里头的事务是怎么实现的?
  9. 比如说MySQL突然宕机重启,数据会丢失吗?
  10. redo log里头存的是什么东西,它和binlog的区别是?
  11. Redis用过哪些数据类型,了解过它们的底层数据结构吗?
  12. 最近有在主动学习哪方面的技术?
  13. 有没有遇到过一些golang的问题?
  14. 代码题,实现LRU算法
请你设计并实现一个满足  LRU (最近最少使用) 缓存 约束的数据结构。
实现 LRUCache 类:
LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存
int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回 -1 。
void put(int key, int value) 如果关键字 key 已经存在,则变更其数据值 value ;
如果不存在,则向缓存中插入该组 key-value 。如果插入操作导致关键字数量超过 capacity,则应该逐出最久未使用的关键字。
其中,函数 get 和 put 必须以 O(1) 的平均时间复杂度运行。

2023.12.20 三面(青藤之恋部门leader面)

  1. 自我介绍
  2. 挑一个计费这边印象最深刻的项目展开讲讲(中间面试官围绕需求背景、业务规则细节还打断提问了不少,但是纯技术点的问题倒不多,探讨了比较久)
  3. 你觉得这个项目里头的难点是什么?
  4. 代码题
给定一个整数n,表示有0,1,2,3,...,n的连续n+1个整数
现在创建一个长度为n的数组,随机从前面n+1个数中取n个数放进去,那么还剩一个元素没有放进去
现在需要你找出这个元素是什么
要求时间复杂度为O(n),空间复杂度为O(1)
  1. 为什么想离职
  2. 反问

2023.12.22 HR面

  1. 老家哪里的?为什么考虑看武汉的机会呢
  2. 目前还没成家吗,是单身吗?
  3. 目前出来看机会的原因
  4. 之前有体验过我们这边所做的产品吗?对社交类的产品感兴趣吗
  5. 你现在看机会的话会比较关注哪些方面?
  6. 目前薪资以及期望薪资