golang 面试题集

Go 中的 rune 和 byte 有什么区别? Go 中的 string 和 []byte 有什么区别? 什么是深拷贝和浅拷贝? Go 中的 slice 和 array 有什么区别?slice的扩容机制与扩容时机,使用slice该注意什么 说说 Go 中闭包的底层原理? 说一下 GMP 模型的原理 Go 的默认栈大小是多少?最大值多少? Go 中的分段栈和连续栈的区别? 简述一下 Go 栈空间的扩容/缩容过程? GMP 为什么要有 P ? Go 中的 GC 演变是怎样的? 哪些情况会导致协程泄露? 内存分配原理 gin框架的路由实现原理 go中http库的实现原理 代码题:使用n个并发,输出[]string{“a”, “b”, “c”, “d”, “e”, “f”, “g”} 代码题:实现一个简单的协程池 代码题:使用并发编排,使abc三个各输出100次 map的底层实现原理,如果一个协程在delete, 一个协程在读,会出现什么问题,原因是什么 uinptr和unsafe.Pointer的区别 singleFlight存在的坑

二月 22, 2023 · nobject

算法笔记

滑动窗口 双指针 贪心 动态规划 排序 二叉树

二月 22, 2023 · nobject

算法笔记 - 二叉树

递归模板 1 2 3 4 5 6 7 8 9 10 func traverse(root *TreeNode) { if root == nil { return } // 前序位置 traverse(root.Left) // 中序位置 traverse(root.Right) // 后序位置 } 层序遍历 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 // 输入一棵二叉树的根节点,层序遍历这棵二叉树 func levelTraverse(root *TreeNode) { if root == nil { return } q := make([]*TreeNode, 0) q = append(q, root) // 从上到下遍历二叉树的每一层 for len(q) > 0 { sz := len(q) // 从左到右遍历每一层的每个节点 for i := 0; i < sz; i++ { cur := q[0] q = q[1:] // 将下一层节点放入队列 if cur....

二月 22, 2023 · nobject

golang面试 - 米哈游第三方编制一面复盘

代码题 以n个协程,去输出[]string{“a”,“b”,“c”,“d”,“e”, “f”, “g”}。 代码题真得很简单,自己手生的很,竟然没写出来。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 func main() { var wg sync.WaitGroup sem := make(chan struct{}, 5) // 创建一个大小为5的信号量 letters := []string{"a", "b", "c", "d", "e", "f", "g"} for _, letter := range letters { sem <- struct{}{} // 尝试写入信号量,如果已满,则阻塞 wg.Add(1) go func(l string) { defer wg.Done() fmt.Println(l) time.Sleep(5 * time.Second) <-sem // 认领信号量 }(letter) } wg....

十一月 4, 2022 · nobject

Interview_algorithm

排序算法 树

三月 5, 2021 · nobject

面试准备

语言 php 框架(laravel) socket编程,异步协程通信swoole php8 语言特性 php 底层实现原理(某个函数的实现,比如in_array; 某个语言结构,比如array) Golang Web框架 gin(目前使用的比较广泛的框架) 优点,与echo相比的优势 channel 通道 interface 接口 可看看B站泄漏的go代码结构 底层的一些实现原理及区别,比如array与slice 数据库及NoSql mysql的索引优化等 es相关可看看 redis相关使用场景 容器 docker相关 k8s相关 队列 rabbitMQ,目前公司消息队列使用 kafka,目前公司大数据存储使用 rocketMQ 阿里生态 计算机网络及网络协议 TCP的三次握手 socket相关 mqtt相关 wireshark抓包及tcpdump抓包 算法 letcode刷题

三月 4, 2021 · nobject