货拉拉go后端开发+大模型面经

一面9.09

介绍一下go并发的GMP模型?

channel的缓冲区、什么情况下channel会堵塞?

线程和协程的区别?

并发和并行有什么区别?

【代码】

(用任何语言都可以)写一下二叉树的层序遍历

【反问环节】

我提问了当前业务的瓶颈和困难、对新人的期待等

二面9.10

之前项目遇到过什么困难,怎么解决的?

你认为go语言优美在哪里?(我说了下goroutine并发,channel传递数据,defer+recover处理panic等等)

HTTPS工作原理?

GET和POST的区别?

长链接在header里怎么体现?

前后端系统是怎么交互的?

之前的x项目里你用到了Redis,用的什么数据结构?

了解消息队列吗?(我说了Kafka和RocketMQ,我简单说了下区别)

你是怎么学一个新东西的?如果给你一个全新陌生的项目你会怎么上手去做?

【代码】找出数组中只出现过一次的数字,比如[1,2,3,2,4,3],输出[1,4]

面试官会让先说思路,引导我说了3种,首先第一就是暴力2层循环,第二种是用map,第三种是先把数组排序再找就只要遍历1次。

然后让我挑一种实现,任何语言都可以,我用go写了map方式的实现。

【反问环节】

具体的工作范围、大模型在业务应用的场景、大模型是直接调openai接口还是有自己训练、对新人的期待等

#牛客解忧铺##牛客在线求职答疑中心#
全部评论
哇,你真的面试了很多内容呢!Go语言的GMP模型听起来好酷,GMP就是goroutine、goroutine scheduler和memory management的缩写对吧?channel的缓冲区和堵塞情况我也很感兴趣呢!还有线程和协程、并发和并行的区别,这些都是很关键的点。 关于二叉树的层序遍历,我可以用Go语言帮你写一个简单的例子哦: ```go package main import "container/list" type TreeNode struct { Val int Left *TreeNode Right *TreeNode } func levelOrder(root *TreeNode) [][]int { if root == nil { return nil } result := [][]int{} queue := list.New() queue.PushBack(root) for queue.Len() > 0 { level := []int{} length := queue.Len() for i := 0; i < length; i++ { node := queue.Front().(*TreeNode) queue.Remove(queue.Front()) level = append(level, node.Val) if node.Left != nil { queue.PushBack(node.Left) } if node.Right != nil { queue.PushBack(node.Right) } } result = append(result, level) } return result } ``` 至于你的面试经历,听起来你准备得很充分呢!关于Go语言的优美之处,你说的goroutine并发、channel传递数据、defer+recover处理panic都很棒。HTTPS、GET和POST的区别、长链接、前后端交互、Redis的数据结构、消息队列,这些都是面试中的高频问题。 对于找出数组中只出现过一次的数字,你提到的三种方法都很实用。用map的方式确实是个不错的选择。 对了,如果你想要更深入地讨论这些问题或者有任何求职上的疑问,可以点击我的头像给我发私信哦,我会一直在这里陪伴你的求职路~那么,你对Go语言的哪些特性印象最深刻呢?有没有什么特别喜欢的特性或者用法?
1 回复 分享
发布于 09-10 11:54 AI生成
请问这是在哪里投的呀, 我看官网好像没有go的岗位呀?
1 回复 分享
发布于 09-10 13:45 江苏
是base长沙吗
1 回复 分享
发布于 09-11 16:56 河南
牛的呀
1 回复 分享
发布于 09-18 09:01 浙江
oc了吗
1 回复 分享
发布于 09-18 09:20 香港
岗位具体叫啥名字呀 咋又有开发 又有大模型
点赞 回复 分享
发布于 10-16 13:08 广东

相关推荐

5 10 评论
分享
牛客网
牛客企业服务