贝壳golang9.17凉经

自我介绍
一.channel底层原理?
答:channel有几个重要的字段:
1.buf指向底层的循环数组,只有设置为有缓存的channel才会有buf
2.sendx和recvx分别指向底层循环数组的发送和接收元素位置的索引
3.sendq和recvq分别表示发送数据的被阻塞的goroutine和读取数据的goroutine,两个都是双向链表结构
4.sendq和recvq的结构为等待队列类型,sudog是goroutine的一种封装
二.channel是如何发送数据的?
答:1.首先看看recvq是否为空,如果不为空,直接从recvq队头取出一个goroutine,将数据发送过去,并唤醒goroutine
2.如果recvq为空,则将数据放入到buffer中
3.如果buffer满了则将goroutine放入sendq队列中,并将当前goroutine置为waiting状态

三.golang中如何拼接字符串?哪种效率最高?
答:
1.在已有字符串数组的场合,使用 strings.Join() 能有比较好的性能
2.在一些性能要求较高的场合,尽量使用 buffer.WriteString() 以获得更好的性能
3.性能要求不太高的场合,直接使用运算符,代码更简短清晰,能获得比较好的可读性
4.如果需要拼接的不仅仅是字符串,还有数字之类的其他需求的话,可以考虑 fmt.Sprintf()

四.介绍下项目的主要内容?

五.单点登陆怎么实现的?

六.说说你对Elasticsearch的了解?

七.说说平时是怎么优化程序性能的?

八.说说对kafka和zookeeper的了解?

九.项目中你是怎么使用kafka的?

十.说说DevOps自动化工作流你是怎么搭建的?

算法:
一、判断链表是否有环?

二、算法三数之和?
全部评论
贝壳还有go吗
点赞 回复 分享
发布于 2023-09-18 12:41 广东
这还凉?
点赞 回复 分享
发布于 2023-09-19 08:17 广东
本科还是硕士呀老哥
点赞 回复 分享
发布于 2023-09-19 09:24 河北
都答上来了也凉凉了吗
点赞 回复 分享
发布于 2023-09-19 09:50 山西

相关推荐

秋国🐮🐴:拿到你简历编号然后让你知道世间险恶
点赞 评论 收藏
分享
02-08 20:56
已编辑
南京工业大学 Java
在等offer的比尔很洒脱:我也是在实习,项目先不说,感觉有点点小熟悉,但是我有点疑问,这第一个实习,公司真的让实习生去部署搭建和引入mq之类的吗,是不是有点过于信任了,我实习过的两个公司都是人家正式早搭好了,根本摸不到部署搭建的
点赞 评论 收藏
分享
评论
3
45
分享

创作者周榜

更多
牛客网
牛客企业服务