1.自我介绍
2.项目相关
3.redis中setnx会有那些问题(获取锁超时、还锁失败)
4.redis中使用过zset吗(排行榜),如果分数相同如何按时间排序,时间越早排序越靠前(core+(最大值减时间戳))
5.http状态码502(错误网关)和504(网关超时)及403(拒绝服务)
6.gin框架都封装了什么(装饰器模式,业务逻辑通过中间件形式存在,中间件可以实现网关的路由,请求的过滤,跨域问题等)
7.mysql innodb 使用的什么索引(B+树),B+树相比于hash树及二叉树的优点在哪(相比于二叉树b+树更矮,可以减少磁盘io次数,先比于hash树B+树的叶子节点是一个双向链表方便范围查询)
8.mysql 垂直分表的依据是什么(按照热点数据和非热点数据分,还问了些自增主键及最左匹配原则的问题)
9.golang中的gmp模型(自行百度)
10.golang中的context可以做什么(通知子协程关闭)及其种类(valueCtx,cancleCtx,timerCtx)
11.golang中的协程与线程的区别(协程比线程更轻量级,线程是系统形态调用,协程是用户形态调用)
12.合并有序链表
func mergeTwoLists( l1 *ListNode , l2 *ListNode ) *ListNode {
// write code here
listNode := ListNode{0, nil}
currentList := &listNode
for l1 != nil && l2 != nil {
if l1.Val < l2.Val {
currentList.Next = l1
l1 = l1.Next
} else {
currentList.Next = l2
l2 = l2.Next
}
currentList = currentList.Next
}
if l1 != nil {
currentList.Next = l1
}
if l2 != nil {
currentList.Next = l2
}
return listNode.Next
}